Executive brief
libsmpp34 is a library that processes SMPP (Short Message Peer-to-Peer) protocol messages used in SMS telecommunications systems. An attacker sending specially crafted SMPP protocol messages can trigger an out-of-bounds memory read in the unpacking function, potentially leading to information disclosure or application crashes in systems that process untrusted SMPP PDUs.
Technical details
The smpp34_unpack() function uses strlen() to parse C_OCTET_STRING fields directly from the wire buffer before validating buffer bounds. Since SMPP PDUs are decoded from a buffer sized exactly to command_length with no trailing NUL terminator, strlen() reads past the allocation boundary when a field lacks a terminator. The fix replaces strlen() with strnlen() bounded by remaining buffer length to prevent out-of-bounds reads.
Affected products
- Osmocom libsmpp34 0.1.0 through 1.8.0
Timeline
- 2026-09-18: disclosed
- 2026-08-12: patched: fix committed to repository
- 2026-09-18: advisory