cbcvebase.
CVE-2009-3699
published 2009-10-15

CVE-2009-3699: Stack-based buffer overflow in libcsa.a (aka the calendar daemon library) in IBM AIX 5.x through 5.3.10 and 6.x through 6.1.3, and VIOS 2.1 and earlier, allows…

PriorityP268critical10CVSS 2.0
AVNACLAuNCCICAC
EXPLOIT
EPSS
62.09%
99.1th percentile
Stack-based buffer overflow in libcsa.a (aka the calendar daemon library) in IBM AIX 5.x through 5.3.10 and 6.x through 6.1.3, and VIOS 2.1 and earlier, allows remote attackers to execute arbitrary code via a long XDR string in the first argument to procedure 21 of rpc.cmsd.

Affected

30 ranges· showing 25
VendorProductVersion rangeFixed in
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix
ibmaix

Detection & IOCsextracted from sources · hover to see the quote

processrpc.cmsd
otherRPC program number 100068, version 4, opcode 21
commandsunrpc_call(21, xdr, 2)
commandsunrpc_call(7, xdr, 2)
portUDP (portmapper-assigned) — RPC program 100068 over UDP
  • Detect oversized XDR string in the first argument of RPC call to program 100068 (cmsd), version 4, opcode 21 over UDP — a long alphanumeric buffer followed by a 4-byte big-endian return address is the exploit payload pattern.
  • Alert on RPC calls to program 100068 version 4 opcode 21 (rtable_create) where the XDR-encoded first argument string length exceeds normal bounds (exploit uses payload_space ~4104 bytes of random alphanumeric data).
  • Heap spray precursor: watch for 10 rapid successive RPC calls to opcode 7 of program 100068 version 4 immediately before an opcode 21 call — this is the exploit's cache-warming/heap-spray pattern.
  • The exploit uses AUTH_UNIX credentials with uid=0, gid=0 ('localhost', 0, 0, []) in the RPC call to opcode 21 — detect RPC requests to cmsd with null uid/gid AUTH_UNIX from unexpected sources.
  • Monitor inetd/portmapper for crash or unresponsive state on AIX hosts after repeated RPC cmsd opcode 21 calls — the exploit notes unsuccessful attempts may cause inetd/portmapper to enter a broken state.
  • ·The exploit payload must avoid null bytes (0x00) and the 0x40 ('@') byte, as the RPC function splits the string on 0x40; detection signatures based on payload content should account for this encoding constraint.
  • ·The exploit targets AIX PowerPC (ppc) architecture only; return addresses and NOP sleds are architecture-specific and detection rules relying on shellcode byte patterns must account for big-endian PowerPC encoding.
  • ·The actual shellcode/payload is placed outside the overflowing string buffer (heap spray via opcode 7) rather than inline in the opcode 21 argument; detection must cover both the spray (opcode 7) and the trigger (opcode 21) calls.
CVEs like this are exactly what “Exploited This Week” covers.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.