CWEweakness
CWE-134 Use of Externally-Controlled Format String
High
Official page ↗
- Abstraction
- Base
- Structure
- Simple
- Status
- Draft
- Likelihood of exploit
- High
- Languages
- C, C++, Not Language-Specific, Perl, Python
- CWE version
- 5.0
Description
The product uses a function that accepts a format string as an argument, but the format string originates from an external source.
Common consequences
• Confidentiality: Read Memory — Format string problems allow for information disclosure which can severely simplify exploitation of the program.
• Integrity, Confidentiality, Availability: Modify Memory, Execute Unauthorized Code or Commands — Format string problems can result in the execution of arbitrary code, buffer overflows, denial of service, or incorrect data representation.
Potential mitigations
• [Requirements] Choose a language that is not subject to this flaw.
• [Implementation] Ensure that all format string functions are passed a static string which cannot be controlled by the user, and that the proper number of arguments are always sent to that function as well. If at all possible, use functions that do not support the %n operator in format strings. [REF-116] [REF-117]
• [Build and Compilation] Run compilers and linkers with high warning levels, since they may detect incorrect usage.
Detection methods
• Automated Static Analysis: This weakness can often be detected using automated static analysis tools. Many modern tools use data flow analysis or constraint-based techniques to minimize the number of false positives.
• Black Box: Since format strings often occur in rarely-occurring erroneous conditions (e.g. for error message logging), they can be difficult to detect using black box methods. It is highly likely that many latent issues exist in executables that do not have associated source code (or equivalent source.
• Automated Static Analysis - Binary or Bytecode: According to SOAR [REF-1479], the following detection techniques may be useful:
Highly cost effective:
• Bytecode Weakness Analysis - including disassembler + source code weakness analysis
• Binary Weakness Analysis - including disassembler + source code weakness analysis
Cost effective for partial coverage:
• Binary / Bytecode simple extractor - strings, ELF readers, etc.
• Manual Static Analysis - Binary or Bytecode: According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
• Binary / Bytecode disassembler - then use manual analysis for vulnerabilities & anomalies
• Dynamic Analysis with Automated Results Interpretation: According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
• Web Application Scanner
• Web Services Scanner
• Database Scanners
• Dynamic Analysis with Manual Results Interpretation: According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
• Fuzz Tester
• Framework-based Fuzzer
• Manual Static Analysis - Source Code: According to SOAR [REF-1479], the following detection techniques may be useful:
Highly cost effective:
• Manual Source Code Review (not inspections)
Cost effective for partial coverage:
• Focused Manual Spotcheck - Focused manual analysis of source
• Automated Static Analysis - Source Code: According to SOAR [REF-1479], the following detection techniques may be useful:
Highly cost effective:
• Source code Weakness Analyzer
• Context-configured Source Code Weakness Analyzer
Cost effective for partial coverage:
• Warning Flags
• Architecture or Design Review: According to SOAR [REF-1479], the following detection techniques may be useful:
Highly cost effective:
• Formal Methods / Correct-By-Construction
Cost effective for partial coverage:
• Inspection (IEEE 1028 standard) (can apply to requirements, design, source code, etc.)
Observed examples
• CVE-2002-1825: format string in Perl program
• CVE-2001-0717: format string in bad call to syslog function
• CVE-2002-0573: format string in bad call to syslog function
• CVE-2002-1788: format strings in NNTP server responses
• CVE-2006-2480: Format string vulnerability exploited by triggering errors or warnings, as demonstrated via format string specifiers in a .bmp filename.
• CVE-2007-2027: Chain: untrusted search path enabling resultant format string by loading malicious internationalization messages.
Related
Attack pattern · CAPEC (2)
Observed example · CVE (6)
- CVE-2007-2027 Untrusted search path vulnerability in the add_filename_to_string function in intl/gettext/loadmsgcat.c for Elinks 0.11.1 allows local… vulnerability
- CVE-2006-2480 Format string vulnerability in Dia 0.94 allows user-assisted attackers to cause a denial of service (crash) and possibly execute arbitrary… vulnerability
- CVE-2002-1788 Format string vulnerability in the nn_exitmsg function in nn 6.6.0 through 6.6.3 allows remote NNTP servers to execute arbitrary code via… vulnerability
- CVE-2002-1825 Format string vulnerability in PerlRTE_example1.pl in WASD 7.1, 7.2.0 through 7.2.3, and 8.0.0 allows remote attackers to execute arbitrary… vulnerability
- CVE-2002-0573 Format string vulnerability in RPC wall daemon (rpc.rwalld) for Solaris 2.5.1 through 8 allows remote attackers to execute arbitrary code… vulnerability
- CVE-2001-0717 Format string vulnerability in ToolTalk database server rpc.ttdbserverd allows remote attackers to execute arbitrary commands via format… vulnerability
Can precede · CWE (1)
- CWE-123 Write-what-where Condition weakness
Child of · CWE (2)
Referenced by CAPEC · weakness (2)
Referenced by CVE · weakness (423)
- CVE-2026-45452 Use of Externally-Controlled format string vulnerability in Unitronics Unitronics UniStream Pro/UniLogic. vulnerability
- CVE-2026-101965 An Use of Externally-Controlled Format String vulnerability in the gRPC daemon of Juniper Networks Junos OS Evolved allows an authenticated… vulnerability
- CVE-2026-101966 A Use of Externally-Controlled Format String vulnerability in the jti-dialoutd of Juniper Networks Junos OS Evolved allows an authenticated… vulnerability
- CVE-2026-102062 An Use of Externally-Controlled Format String vulnerability in the ipfd daemon of Juniper Networks Junos OS on SRX Series allows an… vulnerability
- CVE-2026-83585 Use of externally-controlled format string in Windows NTFS allows an authorized attacker to elevate privileges locally. vulnerability
- CVE-2026-85842 Use of externally-controlled format string in Windows Image Acquisition allows an authorized attacker to elevate privileges locally. vulnerability
- CVE-2026-94520 Use of externally-controlled format string in SQL Server allows an authorized attacker to deny service over a network. vulnerability
- CVE-2026-76753 A format string vulnerability in an affected service interface of HPE Networking ClearPass Policy Manager could allow an unauthenticated… vulnerability
- CVE-2026-14157 Use of an Externally Controlled Format String in the ASUS Router modules allow a remote authenticated user to execute arbitrary commands… vulnerability
- CVE-2026-47494 NVIDIA GPU Display Driver for Linux contains a vulnerability where a user might be able to cause a format string issue. vulnerability
- CVE-2026-76722 Uncontrolled Format string vulnerabilities exist in the affected interface of HPE Networking Instant ON APs that could allow an… vulnerability
- CVE-2026-76729 A format string vulnerability in the API endpoint of HPE Networking Instant ON APs could allow an authenticated remote attacker with high… vulnerability
- CVE-2026-84691 A flaw was found in Red Hat Ansible Automation Platform's automation- controller. vulnerability
- CVE-2026-18461 Use of Externally-Controlled Format String vulnerability in RTI Connext Professional (Core Libraries) allows Format String Injection. vulnerability
- CVE-2026-69395 Use of externally-controlled format string in Active Directory Certificate Services (AD CS) allows an authorized attacker to disclose… vulnerability
- CVE-2026-73782 A format string vulnerability exists in the command line interface of AOS-CX that could lead to unauthenticated remote code execution. vulnerability
- CVE-2026-16821 IBM AIX 7.2, and 7.3 and IBM PowerVM VIOS 4.1 could allow a local attacker to gain elevated privileges due to a format string vulnerability. vulnerability
- CVE-2026-81574 In CodeMeter Runtime before versions 8.41a and 9.10, the logger does not sanitize input strings in certain cases, allowing an attacker to… vulnerability
- CVE-2026-63073 Issue summary: OpenSSL CMP response validation passed an unexpected response sender distinguished name directly as the format string to… vulnerability
- CVE-2026-17136 IBM AIX 7.2, and 7.3 and IBM PowerVM VIOS 4.1 could allow a remote attacker to execute arbitrary code due to a format string vulnerability. vulnerability
- CVE-2026-15961 IBM PowerVM Hypervisor FW1120.00, FW1110.00 through FW1110.30, and FW1060.00 through FW1060.80 IBM PowerVM could allow a local attacker to… vulnerability
- CVE-2026-68553 Coturn is a free open source implementation of TURN and STUN Server. vulnerability
- CVE-2026-12004 IBM Security Verify Access 10.0 through 10.0.9.2 and IBM Verify Identity Access 11.0 through 11.0.3 and IBM Verify Identity Access… vulnerability
- CVE-2026-18186 A stored format string vulnerability was found in the FTP Backup on the ADM. vulnerability
- CVE-2026-18187 A format string vulnerability was found in the Internal Backup on the ADM. vulnerability
- CVE-2026-18188 A format string vulnerability was found in the Rsync Backup on the ADM. vulnerability
- CVE-2026-67244 A format string vulnerability was found in the Notification OAuth settings of ADM. vulnerability
- CVE-2026-6390 A flaw was found in GNU nano's multi-buffer error message handling. vulnerability
- CVE-2024-58366 SurrealDB before 1.1.1 contains a format string vulnerability in the rquickjs Exception::throw_type function when scripting is enabled. vulnerability
- CVE-2026-15809 A flaw was found in CRI-O. vulnerability