binutils Newspaper
JUNE 15, 2026
x86/disasm Proposed Sentiment 9 / 10

Fixes format string vulnerability in x86 disassembler

The patch fixes a potential format string vulnerability in the x86 disassembler by adding format specifiers to i386_dis_printf.

This patch fixes a potential format string vulnerability in the x86 disassembler. The i386_dis_printf function was being called with a format string that did not contain format specifiers, which could lead to security issues. The patch adds the missing format specifiers. H.J. Lu notes that this patch fixes PR binutils/34168.

In the Thread 4 participants
  1. Will Hawkins <hawkinsw@obs.cr> proposer

    Proposes a patch to fix a format string vulnerability in the x86 disassembler.

  2. H.J. Lu <hjl.tools@gmail.com> contributor

    Notes that the patch fixes PR binutils/34168 related to -Werror=format-security.

    “Please mention this fixes PR binutils/34168 with -Werror=format-security: https://sourceware.org/bugzilla/show_bug.cgi?id=34168”
  3. Will Hawkins <hawkinsw@obs.cr> other

    Acknowledges the feedback and confirms they will mention the bug fix.

    “Will do!! I just wanted to let you know that I tried to help!”
  4. H.J. Lu <hjl.tools@gmail.com> other

    Thanks the proposer for the contribution.

    “Thanks. Appreciate it.”

Technical Tradeoffs

  • The patch changes the format string, adding '%s' as a format specifier.
  • The patch is small and localized, minimizing the risk of introducing new issues.

In Details

The x86 disassembler in binutils converts machine code into assembly language. The i386_dis_printf function is used to print the disassembled instructions. A format string vulnerability occurs when the format string passed to i386_dis_printf is not properly sanitized, potentially leading to arbitrary code execution. This patch adds the %s format specifier to mitigate this vulnerability.

For Context

A disassembler translates compiled machine code back into human-readable assembly code, which is useful for debugging and reverse engineering. This patch fixes a security vulnerability in the binutils disassembler for x86 processors. The vulnerability arises from how the disassembler formats its output; if it improperly handles strings, malicious code could potentially be injected. The fix ensures that strings are properly formatted, preventing this type of attack.

Filed Under: securitydisassemblerx86binutilsformat string vulnerability