OpenAFS Security Advisories 2009-001 and 2009-002
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openafs (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Dapper |
Fix Released
|
Undecided
|
Marc Deslauriers | ||
Hardy |
Fix Released
|
Undecided
|
Unassigned | ||
Intrepid |
Fix Released
|
Undecided
|
Marc Deslauriers | ||
Jaunty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
To fix this for...
Dapper: http://
This additionally fixes OPENAFS-SA-2007-003 (aka CVE-2007-6599 aka bug #180792) and OPENAFS-SA-2007-001 (aka CVE-2007-1507 aka bug #94787)
Hardy: http://
Intrepid: http://
Jaunty: http://
(debdiff for reference: http://
===
Two security advisories released today affect all versions of OpenAFS from 1.0 through 1.4.8. They have both been corrected in the simultaneous release of 1.4.9 (which only fixes these two issues over 1.4.8) and 1.4.10 (which also includes other bugfixes). Release announcement:
<http://
OPENAFS-SA-2009-001 - Network based buffer overflow attack against Unix cache manager
<http://
AFS's XDR data marshalling language permits the construction of arrays with a size constrained by the interface definition. The XDR decoding language will accept data from the server up to this maximum size, which in some cases is stored into a buffer allocated by the client. In several locations, the AFS client assumes that the server will never return more data than requested, and so allocates a buffer smaller than this maximum size. Whilst this causes no problems when communicating with valid servers, an attacker can return more data than expected, and overflow the client's buffer.
OPENAFS-SA-2009-002 - Denial of service attack against Linux cache manager
<http://
AFS may pass an error code obtained from the fileserver directly to the Linux kernel, using a Linux mechanism that merges error codes and pointers into a single value. However, this mechanism is unable to distinguish certain error codes from pointers. When AFS returns a code of this type to the kernel, the kernel treats it as a pointer and attempts to dereference it. This causes a kernel panic, and results in a denial of service attack.
visibility: | private → public |
Changed in openafs (Ubuntu): | |
status: | New → Confirmed |
description: | updated |
summary: |
- OpenAFS Security Advisories 2009-001 and 2009-002 + [FinalFreezeException] OpenAFS Security Advisories 2009-001 and 2009-002 |
description: | updated |
summary: |
- [FinalFreezeException] OpenAFS Security Advisories 2009-001 and 2009-002 + OpenAFS Security Advisories 2009-001 and 2009-002 |
Changed in openafs (Ubuntu Jaunty): | |
status: | New → In Progress |
description: | updated |
Changed in openafs (Ubuntu Dapper): | |
status: | In Progress → Fix Committed |
Changed in openafs (Ubuntu Hardy): | |
status: | In Progress → Fix Committed |
Changed in openafs (Ubuntu Intrepid): | |
status: | In Progress → Fix Committed |
Changed in openafs (Ubuntu Dapper): | |
status: | Fix Committed → Fix Released |
Changed in openafs (Ubuntu Hardy): | |
status: | Fix Committed → Fix Released |
Be careful choosing version numbers for this. The normal mechanism for an Ubuntu security version number will result in kernel modules with a lower version than the current modules. Something like 1.4.7.dfsg1- 6+ubuntu0. 1 should work for Intrepid:
priscus:~ evan$ dpkg --compare-versions '1.4.7. dfsg1-6+ 2.6.27- 11.27' lt '1.4.7. dfsg1-6ubuntu0. 1+2.6.27- 11.27' && echo "Yes" || echo "No" dfsg1-6+ 2.6.27- 11.27' lt '1.4.7. dfsg1-6+ ubuntu0. 1+2.6.27- 11.27' && echo "Yes" || echo "No"
No
priscus:~ evan$ dpkg --compare-versions '1.4.7.
Yes