Skip to main content

flawfinder CVE-2026-48813

| EUVDEUVD-2026-56901 HIGH
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection') (CWE-74)
2026-06-26 https://github.com/david-a-wheeler/flawfinder GHSA-4c3c-r6p8-c863 PYSEC-2026-2480
8.7
CVSS 4.0 · Vendor: https://github.com/david-a-wheeler/flawfinder
Share

Severity by source

Vendor (https://github.com/david-a-wheeler/flawfinder) PRIMARY
8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.5 HIGH

Attacker supplies malicious files remotely (AV:N, PR:N); no special conditions required (AC:L); integrity of scan output is wholly compromised (I:H); no confidentiality or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (https://github.com/david-a-wheeler/flawfinder).

CVSS VectorVendor: https://github.com/david-a-wheeler/flawfinder

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

5
Analysis Updated
Aug 11, 2026 - 20:28 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Aug 11, 2026 - 20:22 vuln.today
cvss_changed
CVSS changed
Aug 11, 2026 - 20:22 NVD
8.7 (HIGH)
Source Code Evidence Fetched
Jun 26, 2026 - 21:25 vuln.today
Analysis Generated
Jun 26, 2026 - 21:25 vuln.today

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 11 pypi packages depend on flawfinder (3 direct, 8 indirect)

Ecosystem-wide dependent count for version 2.0.20.

DescriptionCVE.org

Impact

This vulnerability is an improper input neutralization issue leading to output manipulation, specifically, Terminal/ANSI Escape Sequence Injection and XML Injection:

  • Terminal Output Spoofing: A malicious file whose name contains ANSI escape sequences can end up being included in flawfinder's standard terminal output, with many effects. For example, this might allow an attacker to hide critical scan results, falsely making it appear to a human reviewer that no security issues were found.
  • CSV and XML Injection: Untrusted fields (such as filenames, categories, or code context text) were not properly sanitized when generating structured reports. An attacker could exploit this to corrupt CSV formats or inject arbitrary XML attributes into SonarQube outputs via output_sonar().

It impacts those who use flawfinder to evaluate intentionally malicious filenames or file contents.

The initial filename injection problem was reported by Dan Lenz https://www.linkedin.com/in/dan-lenz/

The other vulnerabilities were found by flawfinder project leader David A. Wheeler, GitHub david-a-wheeler, https://dwheeler.com/

Patches

This issue has been fully patched in Version 2.0.20 (released 2026-05-16). All users should upgrade to version 2.0.20 or later immediately. If you use Python's package manager, you can upgrade using pip install --upgrade flawfinder. If you are consuming flawfinder via GitHub Actions, ensure your workflow points to david-a-wheeler/flawfinder@2.0.20 or later.

Workarounds

There is no configuration-based workaround within older versions of flawfinder. If an immediate upgrade is not possible, users can mitigate the risk by:

  • Pre-scanning filenames: Manually or programmatically verifying that target repositories do not contain filenames with control characters (including ANSI escape sequences) before passing them to flawfinder.
  • Inspecting raw output: Reviewing flawfinder outputs in a text editor or logging mechanism that explicitly displays or strips raw escape sequences, rather than relying on live terminal rendering.
  • Restricting untrusted inputs: Avoiding the generation of SonarQube or CSV reports from completely untrusted repositories until the tool is updated.

Resources

See the flawfinder GitHub Repository: https://github.com/david-a-wheeler/flawfinder

AnalysisAI

Output manipulation in flawfinder, the Python-based C/C++ source code security scanner, allows attackers who control scanned filenames or file contents to inject ANSI escape sequences into terminal output and arbitrary content into structured CSV and SonarQube XML reports. Versions prior to 2.0.20 fail to neutralize untrusted fields - including filenames, categories, and code context text - before including them in tool output, enabling an adversary to hide critical security findings from human reviewers or corrupt downstream report processing. Vendor-released patch 2.0.20 (2026-05-16) is available; no KEV listing or confirmed public exploit code has been identified at time of analysis, though the GHSA advisory is public and the exploitation mechanism is straightforward to replicate.

Technical ContextAI

Flawfinder (pip package: flawfinder, CPE: pkg:pip/flawfinder) is a static analysis tool that scans C and C++ source code for common security weaknesses. The root cause is CWE-74 (Improper Neutralization of Special Elements in Output Used by a Downstream Component - Injection), which manifests in two forms: (1) ANSI/terminal escape sequence injection, where filenames containing control characters pass through to standard terminal output without stripping or escaping, enabling an adversary to issue terminal control codes that reposition the cursor, overwrite output lines, or clear the screen; (2) CSV and XML injection in structured report generation, specifically the output_sonar() function, where untrusted fields such as filenames, finding categories, and source code context are interpolated into XML attribute values without encoding, allowing injection of arbitrary XML attributes or structure into SonarQube-formatted reports. Both attack surfaces share the same underlying failure: user-controlled data is treated as safe output content rather than being sanitized or encoded for its output context.

RemediationAI

Upgrade to flawfinder 2.0.20 or later immediately using pip install --upgrade flawfinder; this is the only fully effective fix per the vendor advisory (https://github.com/david-a-wheeler/flawfinder/security/advisories/GHSA-4c3c-r6p8-c863). For GitHub Actions consumers, update workflow references to david-a-wheeler/flawfinder@2.0.20 or a later tag. If an immediate upgrade is not possible, three compensating controls are available, each with trade-offs: (1) Pre-scan filenames programmatically to reject any containing control characters (ASCII < 0x20 or ESC sequences) before passing the repository to flawfinder - this blocks the ANSI injection vector but requires building and maintaining a validation script; (2) Review flawfinder terminal output in a text editor or logging pipeline that renders raw bytes rather than interpreting ANSI codes (e.g., cat -v, less -R disabled, or piping to a log file) - this reveals injection attempts but changes the reviewer workflow; (3) Disable SonarQube and CSV report generation when scanning untrusted repositories - this eliminates the structured-output injection vectors but removes report integration with downstream tooling. None of these workarounds are available as configuration flags within flawfinder itself.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Share

CVE-2026-48813 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy