Freeciv versions before 3.2.6 contain a heap buffer overflow in worklist_load() when processing savegame files with declared worklist lengths exceeding the fixed array bound of 64 elements. Attackers can craft malicious savegame files that write past the entries array into adjacent heap-allocated struct fields, potentially corrupting memory when a user or server operator loads the file.
{
"binaries": [
{
"binary_name": "freeciv",
"binary_version": "2.5.3-1"
},
{
"binary_name": "freeciv-client-extras",
"binary_version": "2.5.3-1"
},
{
"binary_name": "freeciv-client-gtk",
"binary_version": "2.5.3-1"
},
{
"binary_name": "freeciv-client-qt",
"binary_version": "2.5.3-1"
},
{
"binary_name": "freeciv-client-sdl",
"binary_version": "2.5.3-1"
},
{
"binary_name": "freeciv-data",
"binary_version": "2.5.3-1"
},
{
"binary_name": "freeciv-server",
"binary_version": "2.5.3-1"
},
{
"binary_name": "freeciv-sound-standard",
"binary_version": "2.5.3-1"
}
]
}{
"binaries": [
{
"binary_name": "freeciv",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-client-extras",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-client-gtk",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-client-gtk3",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-client-qt",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-client-sdl",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-data",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-server",
"binary_version": "2.5.10-1"
},
{
"binary_name": "freeciv-sound-standard",
"binary_version": "2.5.10-1"
}
]
}{
"binaries": [
{
"binary_name": "freeciv",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-client-extras",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-client-gtk",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-client-gtk3",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-client-qt",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-client-sdl",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-data",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-server",
"binary_version": "2.6.2-1"
},
{
"binary_name": "freeciv-sound-standard",
"binary_version": "2.6.2-1"
}
]
}{
"binaries": [
{
"binary_name": "freeciv",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-client-extras",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-client-gtk",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-client-gtk3",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-client-qt",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-client-sdl",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-data",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-server",
"binary_version": "2.6.6-1"
},
{
"binary_name": "freeciv-sound-standard",
"binary_version": "2.6.6-1"
}
]
}{
"binaries": [
{
"binary_name": "freeciv",
"binary_version": "3.1.0+ds-1build5"
},
{
"binary_name": "freeciv-client-extras",
"binary_version": "3.1.0+ds-1build5"
},
{
"binary_name": "freeciv-client-gtk3",
"binary_version": "3.1.0+ds-1build5"
},
{
"binary_name": "freeciv-client-qt",
"binary_version": "3.1.0+ds-1build5"
},
{
"binary_name": "freeciv-client-sdl",
"binary_version": "3.1.0+ds-1build5"
},
{
"binary_name": "freeciv-data",
"binary_version": "3.1.0+ds-1build5"
},
{
"binary_name": "freeciv-ruleset-tools",
"binary_version": "3.1.0+ds-1build5"
},
{
"binary_name": "freeciv-server",
"binary_version": "3.1.0+ds-1build5"
}
]
}{
"binaries": [
{
"binary_name": "freeciv",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-client-extras",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-client-gtk3",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-client-gtk4",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-client-qt",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-client-sdl",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-data",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-ruleset-tools",
"binary_version": "3.2.4+ds-1"
},
{
"binary_name": "freeciv-server",
"binary_version": "3.2.4+ds-1"
}
]
}