CVE-2008-1686: Multiple speex implementations insufficient boundary checks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
vorbis-tools |
Fix Released
|
Unknown
|
|||
xine-lib |
Fix Released
|
High
|
|||
gst-plugins-good0.10 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Dapper |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Feisty |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Gutsy |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Hardy |
Fix Released
|
Medium
|
Jamie Strandboge | ||
libannodex (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Dapper |
Won't Fix
|
Undecided
|
Unassigned | ||
Feisty |
Won't Fix
|
Undecided
|
Unassigned | ||
Gutsy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hardy |
Won't Fix
|
Undecided
|
Unassigned | ||
libfishsound (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Dapper |
Won't Fix
|
Undecided
|
Unassigned | ||
Feisty |
Won't Fix
|
Undecided
|
Unassigned | ||
Gutsy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hardy |
Fix Released
|
Undecided
|
Unassigned | ||
libsdl-sound1.2 (Ubuntu) |
Won't Fix
|
Undecided
|
Unassigned | ||
Dapper |
Won't Fix
|
Undecided
|
Unassigned | ||
Feisty |
Won't Fix
|
Undecided
|
Unassigned | ||
Gutsy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hardy |
Won't Fix
|
Undecided
|
Unassigned | ||
speex (Fedora) |
Fix Released
|
High
|
|||
speex (Gentoo Linux) |
Fix Released
|
Medium
|
|||
speex (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Dapper |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Feisty |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Gutsy |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Hardy |
Fix Released
|
Medium
|
Jamie Strandboge | ||
sweep (Ubuntu) |
Won't Fix
|
Undecided
|
Unassigned | ||
Dapper |
Won't Fix
|
Undecided
|
Unassigned | ||
Feisty |
Won't Fix
|
Undecided
|
Unassigned | ||
Gutsy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hardy |
Won't Fix
|
Undecided
|
Unassigned | ||
vlc (Ubuntu) |
Fix Released
|
Undecided
|
William Grant | ||
Dapper |
Won't Fix
|
Undecided
|
Unassigned | ||
Feisty |
Won't Fix
|
Undecided
|
Unassigned | ||
Gutsy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hardy |
Fix Released
|
Undecided
|
William Grant | ||
vorbis-tools (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Dapper |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Feisty |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Gutsy |
Fix Released
|
Medium
|
Jamie Strandboge | ||
Hardy |
Fix Released
|
Medium
|
Jamie Strandboge | ||
xine-lib (Ubuntu) |
Fix Released
|
Undecided
|
Reinhard Tartler | ||
Dapper |
Fix Released
|
Undecided
|
Jamie Strandboge | ||
Feisty |
Fix Released
|
Undecided
|
Jamie Strandboge | ||
Gutsy |
Fix Released
|
Undecided
|
Jamie Strandboge | ||
Hardy |
Fix Released
|
Undecided
|
Jamie Strandboge | ||
xmms-speex (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Dapper |
Invalid
|
Undecided
|
Unassigned | ||
Feisty |
Won't Fix
|
Undecided
|
Unassigned | ||
Gutsy |
Won't Fix
|
Undecided
|
Unassigned | ||
Hardy |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Description
Uncontrolled array index in Speex 1.1.12 and earlier, as used in libfishsound 0.9.0 and earlier, including Illiminable DirectShow Filters and Annodex Plugins for Firefox, allows remote attackers to execute arbitrary code via a header structure containing a negative offset, which is used to dereference a function pointer.
See:
http://
http://
From the oCERT advisory #2008-002:
"The libfishsound decoder library incorrectly implements the reference speex decoder from the Speex library, performing insufficient boundary checks on a header structure read from user input.
A user controlled field in the header structure is used to build a function pointer. The libfishsound implementation does not check for negative values for the field, allowing the function pointer to be pointed at an arbitary position in memory. This allows remote code execution.
A patch has been committed to the libfishsound public repository.
Affected version: <= 0.9.0
Fixed version: 0.9.1
Additional affected packages:
Speex <= 1.1.12, the reference implementation from which libfishsound is derived.
Illiminable DirectShow Filters, which statically include the libfishsound library.
Annodex Plugins for Firefox.
Credit: reporter wishes to remain anonymous
CVE: CVE-2008-1686"
From the oCERT advisory #2008-004:
"The reference speex decoder from the Speex library performs insufficient
boundary checks on a header structure read from user input, this has been
reported in oCERT-2008-002 advisory.
Further investigation showed that several packages include similar code and
are therefore vulnerable.
In order to prevent the usage of incorrect header processing reference code,
the speex_packet_
mode values in Speex >= 1.2beta3.2. This change automatically fixes
applications that use the Speex library dynamically.
Affected version:
gstreamer-
SDL_sound <= 1.0.1
Speex <= 1.1.12 (speexdec)
Sweep <= 0.9.2
vorbis-tools <= 1.2.0
VLC Media Player <= 0.8.6f
xine-lib <= 1.1.11.1
XMMS speex plugin
Fixed version:
gstreamer-
SDL_sound, patched in CVS
Speex >= 1.2beta3.2 (patched in CVS)
Sweep >= 0.9.3
vorbis-tools, patched in CVS
VLC Media Player, N/A
xine-lib >= 1.1.12
XMMS speex plugin, N/A
Credit: see oCERT-2008-002, additionally we would like to thank Tomas Hoger
from the Red Hat Security Response Team for his help in investigating the
issue.
CVE: CVE-2008-1686"
Related branches
Changed in gst-plugins-good0.10: | |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
Changed in xmms-speex: | |
status: | New → Invalid |
status: | New → Invalid |
status: | New → Invalid |
Changed in gst-plugins-good0.10: | |
assignee: | nobody → jdstrand |
status: | New → In Progress |
Changed in speex: | |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
Changed in vorbis-tools: | |
assignee: | nobody → jdstrand |
status: | New → In Progress |
Changed in vorbis-tools: | |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
Changed in xine-lib: | |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
assignee: | nobody → jdstrand |
status: | New → In Progress |
Changed in gst-plugins-good0.10: | |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
status: | New → Confirmed |
Changed in speex: | |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
importance: | Undecided → Medium |
status: | In Progress → Fix Committed |
Changed in speex: | |
status: | Unknown → Fix Released |
status: | Unknown → In Progress |
Changed in vorbis-tools: | |
status: | Unknown → Fix Released |
Changed in xine-lib: | |
status: | Unknown → Fix Released |
Changed in speex: | |
status: | In Progress → Fix Released |
Changed in speex: | |
status: | Fix Released → In Progress |
Changed in speex: | |
status: | In Progress → Fix Released |
Changed in vlc: | |
assignee: | nobody → wgrant |
status: | New → Fix Released |
assignee: | nobody → wgrant |
status: | New → In Progress |
Changed in xine-lib: | |
status: | In Progress → Fix Released |
status: | In Progress → Fix Released |
status: | In Progress → Fix Released |
status: | In Progress → Fix Released |
Changed in gst-plugins-good0.10: | |
status: | Fix Committed → Fix Released |
Changed in vlc: | |
status: | In Progress → Fix Released |
Changed in xmms-speex: | |
status: | New → Confirmed |
Changed in libannodex: | |
status: | New → Confirmed |
status: | New → Confirmed |
status: | New → Confirmed |
Changed in libfishsound: | |
status: | New → Confirmed |
status: | New → Confirmed |
status: | New → Confirmed |
Changed in libsdl-sound1.2: | |
status: | New → Confirmed |
status: | New → Confirmed |
status: | New → Confirmed |
Changed in sweep: | |
status: | New → Confirmed |
status: | New → Confirmed |
status: | New → Confirmed |
Changed in vlc: | |
status: | New → Confirmed |
status: | New → Confirmed |
Changed in libannodex: | |
status: | New → Confirmed |
Changed in libfishsound: | |
status: | New → Confirmed |
Changed in libsdl-sound1.2: | |
status: | New → Confirmed |
Changed in sweep: | |
status: | New → Confirmed |
tags: | added: patch |
Changed in speex (Gentoo Linux): | |
importance: | Unknown → Medium |
Changed in sweep (Ubuntu): | |
status: | Confirmed → Won't Fix |
Changed in libsdl-sound1.2 (Ubuntu): | |
status: | Confirmed → Won't Fix |
Changed in xine-lib: | |
importance: | Unknown → High |
Changed in speex (Fedora): | |
importance: | Unknown → High |
Common Vulnerabilities and Exposures assigned an identifier CVE-2008-1686 to the following vulnerability:
Quoting oCert advisory:
The libfishsound decoder library incorrectly implements the reference speex
decoder from the Speex library, performing insufficient boundary checks on a
header structure read from user input.
A user controlled field in the header structure is used to build a function
pointer. The libfishsound implementation does not check for negative values for
the field, allowing the function pointer to be pointed at an arbitary position
in memory. This allows remote code execution.
Affected version: <= 0.9.0
Fixed version: 0.9.1
Upstream patch in trunk: trac.annodex. net/changeset/ 3536
http://
References: www.ocert. org/advisories/ ocert-2008- 2.html lists.xiph. org/pipermail/ speex-dev/ 2008-April/ 006636. html
http://
http://