# CVE-2023-34095: cpdb-libs vulnerable to buffer overflows via scanf

> Attackers can trigger buffer overflows in cpdb-libs via long strings in configuration files or command lines, potentially leading to code execution or crashes.

- **Severity:** Critical 9.8 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 14 Jun 2023
- **Updated:** 13 Feb 2025
- **Also known as:** DEBIAN-CVE-2023-34095, GHSA-25j7-9gfc-f46x, UBUNTU-CVE-2023-34095, USN-6204-1

## What is CVE-2023-34095?

CVE-2023-34095 is a critical memory corruption vulnerability in OpenPrinting cpdb-libs, published on 14 Jun 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

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.

Weakness: CWE-787 (Out-of-bounds Write), CWE-121 (Stack-based Buffer Overflow)

## Which versions are affected by CVE-2023-34095?

It affects 1 product.


Products: Openprinting Cpdb-Libs.

## How do I fix CVE-2023-34095?

Apply the vendor's patch.

## Is CVE-2023-34095 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2023-34095 exists.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2023-34095 and fix it if it is affected.

What it is: CVE-2023-34095 is a critical memory corruption vulnerability in OpenPrinting cpdb-libs, published on 14 Jun 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2023-34095 exists.

Affected product: OpenPrinting cpdb-libs. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2023-34095/ (Markdown: https://insights.sbomify.com/CVE-2023-34095/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2023-34095
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2023-34095
- OSV: https://osv.dev/vulnerability/CVE-2023-34095

---
From sbomify Insights: https://insights.sbomify.com/CVE-2023-34095/
Summaries are generated and may contain mistakes; the official description above is the record.
