cpdb-libs provides frontend and backend libraries for the Common Printing Dialog Backends (CPDB) project. In versions 1.0 through 2.0b4, cpdb-libs is vulnerable to buffer overflows via improper use of scanf(3)
. cpdb-libs uses the fscanf()
and scanf()
functions to parse command lines and configuration files, dropping the read string components into fixed-length buffers, but does not limit the length of the strings to be read by fscanf()
and scanf()
causing buffer overflows when a string is longer than 1023 characters. A patch for this issue is available at commit f181bd1f14757c2ae0f17cc76dc20421a40f30b7. As all buffers have a length of 1024 characters, the patch limits the maximum string length to be read to 1023 by replacing all occurrences of %s
with %1023s
in all calls of the fscanf()
and scanf()
functions.
A stack-based buffer overflow condition is a condition where the buffer being overwritten is allocated on the stack (i.e., is a local variable or, rarely, a parameter to a function).
Name | Vendor | Start Version | End Version |
---|---|---|---|
Cpdb-libs | Openprinting | 1.0 (including) | 2.0 (excluding) |
Cpdb-libs | Openprinting | 2.0-beta1 (including) | 2.0-beta1 (including) |
Cpdb-libs | Openprinting | 2.0-beta2 (including) | 2.0-beta2 (including) |
Cpdb-libs | Openprinting | 2.0-beta3 (including) | 2.0-beta3 (including) |
Cpdb-libs | Openprinting | 2.0-beta4 (including) | 2.0-beta4 (including) |
Cpdb-libs | Ubuntu | devel | * |
Cpdb-libs | Ubuntu | esm-apps/bionic | * |
Cpdb-libs | Ubuntu | focal | * |
Cpdb-libs | Ubuntu | jammy | * |
Cpdb-libs | Ubuntu | kinetic | * |
Cpdb-libs | Ubuntu | lunar | * |
Cpdb-libs | Ubuntu | mantic | * |
Cpdb-libs | Ubuntu | noble | * |
Cpdb-libs | Ubuntu | oracular | * |