swi-prolog — security advisory
The LZW decompressor in the LWZReadByte function in giftoppm.c in the David Koblas GIF decoder in PBMPLUS, as used in the gif_read_lzw function in filter/image-gif.c in CUPS before 1.4.7, the LZWReadByte function in plug-ins/common/file-gif-load.c in GIMP 2.6.11 and earlier, the LZWReadByte function in img/gifread.c in XPCE in SWI-Prolog 5.10.4 and earlier, and other products, does not properly handle code words that are absent from the decompression table when encountered, which allows remote attackers to trigger an infinite loop or a heap-based buffer overflow, and possibly execute arbitrary code, via a crafted compressed stream, a related issue to CVE-2006-1168 and CVE-2011-2895.
- Products
- swi-prolog
- Affected versions
- 7.2.0-2, 7.2.0-3, 7.2.3-2, 7.4.2+dfsg-2, 7.6.1+dfsg-2, 7.6.1+dfsg-3, 7.6.2+dfsg-1, 7.6.4+dfsg-1build1, 7.6.4+dfsg-2ubuntu2, 8.2.4+dfsg-1ubuntu1, 8.4.2+dfsg-2ubuntu1, 9.0.4+dfsg-2ubuntu1, 9.0.4+dfsg-3.1ubuntu3, 9.0.4+dfsg-3.1ubuntu4, 9.0.4+dfsg-3ubuntu1, 9.2.9+dfsg-1, 9.2.9+dfsg-1.1, 9.2.9+dfsg-1.1build1, 9.2.9+dfsg-1.1ubuntu1, 9.2.9+dfsg-1.1ubuntu3
- Fixed versions
- Not specified
- CVEs
- CVE-2011-2896
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 31 Oct 2026, 00:20 UTC · Revision 1
Source evidence
The LZW decompressor in the LWZReadByte function in giftoppm.c in the David Koblas GIF decoder in PBMPLUS, as used in the gif_read_lzw function in filter/image-gif.c in CUPS before 1.4.7, the LZWReadByte function in plug-ins/common/file-gif-load.c in GIMP 2.6.11 and earlier, the LZWReadByte function in img/gifread.c in XPCE in SWI-Prolog 5.10.4 and earlier, and other products, does not properly handle code words that are absent from the decompression table when encountered, which allows remote attackers to trigger an infinite loop or a heap-based buffer overflow, and possibly execute arbitrary code, via a crafted compressed stream, a related issue to CVE-2006-1168 and CVE-2011-2895.
osv:UBUNTU-CVE-2011-2896
swi-prolog
Fixed versions: Not specified
swi-prolog
Fixed versions: Not specified
swi-prolog
Fixed versions: Not specified
swi-prolog
Fixed versions: Not specified
swi-prolog
Fixed versions: Not specified
swi-prolog
Fixed versions: Not specified
swi-prolog
Fixed versions: Not specified
swi-prolog
Fixed versions: Not specified
Complete source record
{
"id": "2d388ecfddf92ca59437d37bf2e57eb30815718ac93d976b7bb39eb3c1f55440",
"url": "https://osv.dev/vulnerability/UBUNTU-CVE-2011-2896",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "UBUNTU-CVE-2011-2896",
"summary": "The LZW decompressor in the LWZReadByte function in giftoppm.c in the David Koblas GIF decoder in PBMPLUS, as used in the gif_read_lzw function in filter/image-gif.c in CUPS before 1.4.7, the LZWReadByte function in plug-ins/common/file-gif-load.c in GIMP 2.6.11 and earlier, the LZWReadByte function in img/gifread.c in XPCE in SWI-Prolog 5.10.4 and earlier, and other products, does not properly handle code words that are absent from the decompression table when encountered, which allows remote attackers to trigger an infinite loop or a heap-based buffer overflow, and possibly execute arbitrary code, via a crafted compressed stream, a related issue to CVE-2006-1168 and CVE-2011-2895.",
"evidence": "osv:UBUNTU-CVE-2011-2896",
"products": [
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "7.2.0-2",
"evidence": "/affected/0/versions"
},
{
"value": "7.2.0-3",
"evidence": "/affected/0/versions"
},
{
"value": "7.2.3-2",
"evidence": "/affected/0/versions"
}
]
},
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "7.4.2+dfsg-2",
"evidence": "/affected/1/versions"
},
{
"value": "7.6.1+dfsg-2",
"evidence": "/affected/1/versions"
},
{
"value": "7.6.1+dfsg-3",
"evidence": "/affected/1/versions"
},
{
"value": "7.6.2+dfsg-1",
"evidence": "/affected/1/versions"
},
{
"value": "7.6.4+dfsg-1build1",
"evidence": "/affected/1/versions"
}
]
},
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "7.6.4+dfsg-2ubuntu2",
"evidence": "/affected/2/versions"
}
]
},
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "8.2.4+dfsg-1ubuntu1",
"evidence": "/affected/3/versions"
},
{
"value": "8.4.2+dfsg-2ubuntu1",
"evidence": "/affected/3/versions"
}
]
},
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/4/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "9.0.4+dfsg-2ubuntu1",
"evidence": "/affected/4/versions"
},
{
"value": "9.0.4+dfsg-3ubuntu1",
"evidence": "/affected/4/versions"
},
{
"value": "9.0.4+dfsg-3.1ubuntu3",
"evidence": "/affected/4/versions"
},
{
"value": "9.0.4+dfsg-3.1ubuntu4",
"evidence": "/affected/4/versions"
}
]
},
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/5/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "9.0.4+dfsg-3.1ubuntu4",
"evidence": "/affected/5/versions"
},
{
"value": "9.2.9+dfsg-1",
"evidence": "/affected/5/versions"
}
]
},
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/6/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "9.2.9+dfsg-1.1build1",
"evidence": "/affected/6/versions"
},
{
"value": "9.2.9+dfsg-1.1ubuntu1",
"evidence": "/affected/6/versions"
},
{
"value": "9.2.9+dfsg-1.1ubuntu3",
"evidence": "/affected/6/versions"
}
]
},
{
"name": {
"value": "swi-prolog",
"evidence": "/affected/7/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "9.2.9+dfsg-1",
"evidence": "/affected/7/versions"
},
{
"value": "9.2.9+dfsg-1.1",
"evidence": "/affected/7/versions"
},
{
"value": "9.2.9+dfsg-1.1build1",
"evidence": "/affected/7/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "UBUNTU-CVE-2011-2896",
"aliases": [
"UBUNTU-CVE-2011-2896"
],
"metrics": [
{
"type": "Ubuntu",
"score": "medium"
}
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=xenial",
"ecosystem": "Ubuntu:16.04:LTS"
},
"versions": [
"7.2.0-2",
"7.2.0-3",
"7.2.3-2"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "7.2.3-2"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "7.2.3-2"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "7.2.3-2"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "7.2.3-2"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "7.2.3-2"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=bionic",
"ecosystem": "Ubuntu:18.04:LTS"
},
"versions": [
"7.4.2+dfsg-2",
"7.6.1+dfsg-2",
"7.6.1+dfsg-3",
"7.6.2+dfsg-1",
"7.6.4+dfsg-1build1"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "7.6.4+dfsg-1build1"
},
{
"binary_name": "swi-prolog-bdb",
"binary_version": "7.6.4+dfsg-1build1"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "7.6.4+dfsg-1build1"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "7.6.4+dfsg-1build1"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "7.6.4+dfsg-1build1"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "7.6.4+dfsg-1build1"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=focal",
"ecosystem": "Ubuntu:20.04:LTS"
},
"versions": [
"7.6.4+dfsg-2ubuntu2"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "7.6.4+dfsg-2ubuntu2"
},
{
"binary_name": "swi-prolog-bdb",
"binary_version": "7.6.4+dfsg-2ubuntu2"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "7.6.4+dfsg-2ubuntu2"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "7.6.4+dfsg-2ubuntu2"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "7.6.4+dfsg-2ubuntu2"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "7.6.4+dfsg-2ubuntu2"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=jammy",
"ecosystem": "Ubuntu:22.04:LTS"
},
"versions": [
"8.2.4+dfsg-1ubuntu1",
"8.4.2+dfsg-2ubuntu1"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-bdb",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-core",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-core-packages",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-full",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-test",
"binary_version": "8.4.2+dfsg-2ubuntu1"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "8.4.2+dfsg-2ubuntu1"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=noble",
"ecosystem": "Ubuntu:24.04:LTS"
},
"versions": [
"9.0.4+dfsg-2ubuntu1",
"9.0.4+dfsg-3ubuntu1",
"9.0.4+dfsg-3.1ubuntu3",
"9.0.4+dfsg-3.1ubuntu4"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-bdb",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-core",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-core-packages",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-full",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-test",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "9.0.4+dfsg-3.1ubuntu4"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=questing",
"ecosystem": "Ubuntu:25.10"
},
"versions": [
"9.0.4+dfsg-3.1ubuntu4",
"9.2.9+dfsg-1"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-bdb",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-core",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-core-packages",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-full",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-test",
"binary_version": "9.2.9+dfsg-1"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "9.2.9+dfsg-1"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=stonking",
"ecosystem": "Ubuntu:26.10"
},
"versions": [
"9.2.9+dfsg-1.1build1",
"9.2.9+dfsg-1.1ubuntu1",
"9.2.9+dfsg-1.1ubuntu3"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-bdb",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-core",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-core-packages",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-full",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-test",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "9.2.9+dfsg-1.1ubuntu3"
}
]
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "swi-prolog",
"purl": "pkg:deb/ubuntu/swi-prolog?arch=source&distro=resolute",
"ecosystem": "Ubuntu:26.04:LTS"
},
"versions": [
"9.2.9+dfsg-1",
"9.2.9+dfsg-1.1",
"9.2.9+dfsg-1.1build1"
],
"database_specific": {
"source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2011/UBUNTU-CVE-2011-2896.json"
},
"ecosystem_specific": {
"binaries": [
{
"binary_name": "swi-prolog",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-bdb",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-core",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-core-packages",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-full",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-java",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-nox",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-odbc",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-test",
"binary_version": "9.2.9+dfsg-1.1build1"
},
{
"binary_name": "swi-prolog-x",
"binary_version": "9.2.9+dfsg-1.1build1"
}
]
}
}
],
"modified": "2026-10-17T12:52:47.044181215Z",
"provider": "osv",
"upstream": [
"CVE-2011-2896"
],
"references": [
"https://ubuntu.com/security/CVE-2011-2896",
"https://ubuntu.com/security/notices/USN-1207-1",
"https://ubuntu.com/security/notices/USN-1214-1",
"https://www.cve.org/CVERecord?id=CVE-2011-2896"
]
},
"related_cves": [
{
"value": "CVE-2011-2896",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 353291,
"published_at": "2011-08-19T00:00:00+00:00"
}