{
  "cveId": "CVE-2022-48064",
  "url": "https://patchblox.com/security/cve/CVE-2022-48064",
  "summary": "CVE-2022-48064 is fixed in 8 products on 1 platform, first by DEBIAN-CVE-2022-48064, released August 22, 2023. It is not reported as exploited. Patch Radar priority: Routine.",
  "title": "gdb: This update for gdb fixes the following issues:\n\nMention changes in GDB 14:\n\n* GDB now supports the AArch64 Scalable...",
  "description": "This update for gdb fixes the following issues:\n\nMention changes in GDB 14:\n\n* GDB now supports the AArch64 Scalable Matrix Extension 2\n  (SME2), which includes a new 512 bit lookup table register\n  named ZT0.\n* GDB now supports the AArch64 Scalable Matrix Extension (SME),\n  which includes a new matrix register named ZA, a new thread\n  register TPIDR2 and a new vector length register SVG\n  (streaming vector granule).  GDB also supports tracking ZA\n  state across signal frames.  Some features are still under\n  development or are dependent on ABI specs that are still in\n  alpha stage.  For example, manual function calls with ZA state\n  don\u0027t have any special handling, and tracking of SVG changes\n  based on DWARF information is still not implemented, but there\n  are plans to do so in the future.\n* GDB now recognizes the NO_COLOR environment variable and\n  disables styling according to the spec.  See\n  https://no-color.org/.  Styling can be re-enabled with\n  \u0027set style enabled on\u0027.\n* The AArch64 \u0027org.gnu.gdb.aarch64.pauth\u0027 Pointer Authentication\n  feature string has been deprecated in favor of the\n  \u0027org.gnu.gdb.aarch64.pauth_v2\u0027 feature string.\n* GDB now has some support for integer types larger than 64 bits.\n* Multi-target feature configuration.\n  GDB now supports the individual configuration of remote\n  targets\u0027 feature sets.  Based on the current selection of a\n  target, the commands \u0027set remote \u003Cname\u003E-packet (on|off|auto)\u0027\n  and \u0027show remote \u003Cname\u003E-packet\u0027 can be used to configure a\n  target\u0027s feature packet and to display its configuration,\n  respectively.\n* GDB has initial built-in support for the Debugger Adapter\n  Protocol.\n* For the break command, multiple uses of the \u0027thread\u0027 or \u0027task\u0027\n  keywords will now give an error instead of just using the\n  thread or task id from the last instance of the keyword.  E.g.:\n    break foo thread 1 thread 2\n  will now give an error rather than using \u0027thread 2\u0027.\n* For the watch command, multiple uses of the \u0027task\u0027 keyword will\n  now give an error instead of just using the task id from the\n  last instance of the keyword.  E.g.:\n    watch my_var task 1 task 2\n  will now give an error rather than using \u0027task 2\u0027.  The\n  \u0027thread\u0027 keyword already gave an error when used multiple times\n  with the watch command, this remains unchanged.\n* The \u0027set print elements\u0027 setting now helps when printing large\n  arrays.  If an array would otherwise exceed max-value-size, but\n  \u0027print elements\u0027 is set such that the size of elements to print\n  is less than or equal to \u0027max-value-size\u0027, GDB will now still\n  print the array, however only \u0027max-value-size\u0027 worth of data\n  will be added into the value history.\n* For both the break and watch commands, it is now invalid to use\n  both the \u0027thread\u0027 and \u0027task\u0027 keywords within the same command.\n  For example the following commnds will now give an error:\n    break foo thread 1 task 1\n    watch var thread 2 task 3\n* The printf command now accepts a \u0027%V\u0027 output format which will\n  format an expression just as the \u0027print\u0027 command would.  Print\n  options can be placed withing \u0027[...]\u0027 after the \u0027%V\u0027 to modify\n  how the value is printed.  E.g:\n    printf \u0027%V\u0027, some_array\n    printf \u0027%V[-array-indexes on]\u0027, some_array\n  will print the array without, or with array indexes included,\n  just as the array would be printed by the \u0027print\u0027 command.\n  This functionality is also available for dprintf when\n  dprintf-style is \u0027gdb\u0027.\n* When the printf command requires a string to be fetched from\n  the\tinferior, GDB now uses the existing \u0027max-value-size\u0027\n  setting to the limit the memory allocated within GDB.  The\n  default \u0027max-value-size\u0027 is 64k.  To print longer strings you\n  should increase \u0027max-value-size\u0027.\n* The Ada 2022 Enum_Rep and Enum_Val attributes are now\n  supported.\n* The Ada 2022 target name symbol (\u0027@\u0027) is now supported by the\n  Ada expression parser.\n* The \u0027list\u0027 command now accepts \u0027.\u0027 as an argument, which tells\n  GDB to print the location around the point of execution within\n  the current frame.  If the inferior hasn\u0027t started yet, the\n  command will print around the beginning of the \u0027main\u0027 function.\n* Using the \u0027list\u0027 command with no arguments in a situation where\n  the command would attempt to list past the end of the file now\n  warns the user that the end of file has been reached, refers\n  the user to the newly added \u0027.\u0027 argument\n* Breakpoints can now be inferior-specific.  This is similar to\n  the\texisting thread-specific breakpoint support.  Breakpoint\n  conditions can include the \u0027inferior\u0027 keyword followed by an\n  inferior id (as displayed in the \u0027info inferiors\u0027 output).\n  It is invalid to use the \u0027inferior\u0027 keyword with either the\n  \u0027thread\u0027 or \u0027task\u0027 keywords when creating a breakpoint.\n* New convenience function \u0027$_shell\u0027, to execute a shell command\n  and return the result.  This lets you run shell commands in\n  expressions.  Some examples:\n   (gdb) p $_shell(\u0027true\u0027)\n   $1 = 0\n   (gdb) p $_shell(\u0027false\u0027)\n   $2 = 1\n   (gdb) break func if $_shell(\u0027some command\u0027) == 0\n* New commands:\n\n  * set debug breakpoint on|off\n    show debug breakpoint\n    Print additional debug messages about breakpoint insertion\n    and removal.\n  * maintenance print record-instruction [ N ]\n    Print the recorded information for a given instruction.  If N\n    is not given prints how GDB would undo the last instruction\n    executed.  If N is negative, prints how GDB would undo the\n    N-th previous instruction, and if N is positive, it prints\n    how GDB will redo the N-th following instruction.\n  * maintenance info frame-unwinders\n    List the frame unwinders currently in effect, starting with\n    the highest priority.\n  * maintenance wait-for-index-cache\n    Wait until all pending writes to the index cache have\n    completed.\n  * set always-read-ctf on|off\n    show always-read-ctf\n    When off, CTF is only read if DWARF is not present.  When on,\n    CTF is read regardless of whether DWARF is present.  Off by\n    default.\n  * info main\n    Get main symbol to identify entry point into program.\n  * set tui mouse-events [on|off]\n    show tui mouse-events\n    When on (default), mouse clicks control the TUI and can be\n    accessed by Python extensions.  When off, mouse clicks are\n    handled by the terminal, enabling terminal-native text\n    selection.\n\n* MI changes:\n\n  * MI version 1 has been removed.\n  * mi now reports \u0027no-history\u0027 as a stop reason when hitting the\n    end of the reverse execution history.\n  * When creating a thread-specific breakpoint using the \u0027-p\u0027\n    option, the -break-insert command would report the \u0027thread\u0027\n    field twice in the reply.  The content of both fields was\n    always identical.  This has now been fixed; the \u0027thread\u0027\n    field will be reported just once for thread-specific\n    breakpoints, or not at all for breakpoints without a thread\n    restriction.  The same is also true for the \u0027task\u0027 field of\n    an Ada task-specific breakpoint.\n    * It is no longer possible to create a thread-specific\n    breakpoint for a thread that doesn\u0027t exist using\n    \u0027-break-insert -p ID\u0027.  Creating breakpoints for\n    non-existent threads is not allowed when using the CLI, that\n    the MI allowed it was a long standing bug, which has now\n    been fixed.\n  * The \u0027--simple-values\u0027 argument to the\n    \u0027-stack-list-arguments\u0027,\u0027-stack-list-locals\u0027,\n    \u0027-stack-list-variables\u0027, and \u0027-var-list-children\u0027 commands now\n    takes reference types into account: that is, a value is now\n    considered simple if it is neither an array, structure, or\n    union, nor a reference to an array, structure, or union.\n    (Previously all references were considered simple.)  Support\n    for this feature can be verified by using the\n    \u0027-list-features\u0027 command, which should contain\n    \u0027simple-values-ref-types\u0027.\n  * The -break-insert command now accepts a \u0027-g thread-group-id\u0027\n    option to allow for the creation of inferior-specific\n    breakpoints.\n  * The bkpt tuple, which appears in breakpoint-created\n    notifications, and in the result of the -break-insert\n    command can now include an optional \u0027inferior\u0027 field for both\n    the main breakpoint, and each location, when the breakpoint\n    is inferior-specific.\n\n* Python API:\n\n  * gdb.ThreadExitedEvent added.  Emits a ThreadEvent.\n  * The gdb.unwinder.Unwinder.name attribute is now read-only.\n  * The name argument passed to gdb.unwinder.Unwinder.__init__\n    must now be of type \u0027str\u0027 otherwise a TypeError will be\n    raised.\n  * The gdb.unwinder.Unwinder.enabled attribute can now only\n    accept values of type \u0027bool\u0027.  Changing this attribute will\n    now invalidate GDB\u0027s frame-cache, which means GDB will need\n    to rebuild its frame-cache when next required - either with,\n    or without the particular unwinder, depending on how\n    \u0027enabled\u0027 was changed.\n  * New methods added to the gdb.PendingFrame class.  These\n    methods have the same behaviour as the corresponding\n    methods on gdb.Frame.  The new methods are:\n    * gdb.PendingFrame.name: Return the name for the frame\u0027s\n      function, or None.\n    * gdb.PendingFrame.is_valid: Return True if the pending\n      frame object is valid.\n    * gdb.PendingFrame.pc: Return the $pc register value for\n      this frame.\n    * gdb.PendingFrame.language: Return a string containing the\n      language for this frame, or None.\n    * gdb.PendingFrame.find_sal: Return a gdb.Symtab_and_line\n      object for the current location within the pending frame,\n      or None.\n    * gdb.PendingFrame.block: Return a gdb.Block for the current\n      pending frame, or None.\n    * gdb.PendingFrame.function: Return a gdb.Symbol for the\n      current pending frame, or None.\n  * The frame-id passed to gdb.PendingFrame.create_unwind_info\n    can now use either an integer or a gdb.Value object for each\n    of its \u0027sp\u0027, \u0027pc\u0027, and \u0027special\u0027 attributes.\n  * A new class gdb.unwinder.FrameId has been added.  Instances\n    of this class are constructed with \u0027sp\u0027 (stack-pointer) and\n    \u0027pc\u0027 (program-counter) values, and can be used as the\n    frame-id when calling gdb.PendingFrame.create_unwind_info.\n  * It is now no longer possible to sub-class the\n    gdb.disassembler.DisassemblerResult type.\n  * The Disassembler API from the gdb.disassembler module has\n    been extended to include styling support:\n    * The DisassemblerResult class can now be initialized with a\n      list of parts.  Each part represents part of the\n      disassembled instruction along with the associated style\n      information.  This list of parts can be accessed with the\n      new DisassemblerResult.parts property.\n    * New constants gdb.disassembler.STYLE_* representing all the\n      different styles part of an instruction might have.\n    * New methods DisassembleInfo.text_part and\n      DisassembleInfo.address_part which are used to create the\n      new styled parts of a disassembled instruction.\n    * Changes are backwards compatible, the older API can still\n      be used to disassemble instructions without styling.\n  * New function gdb.execute_mi(COMMAND, [ARG]...), that invokes\n    a GDB/MI command and returns the output as a Python\n    dictionary.\n  * New function gdb.block_signals().  This returns a context\n    manager that blocks any signals that GDB needs to handle\n    itself.\n  * New class gdb.Thread.  This is a subclass of threading.Thread\n    that calls gdb.block_signals in its \u0027start\u0027 method.\n  * gdb.parse_and_eval now has a new \u0027global_context\u0027 parameter.\n    This can be used to request that the parse only examine\n    global symbols.\n  * gdb.Inferior now has a new \u0027arguments\u0027 attribute.  This holds\n    the command-line arguments to the inferior, if known.\n  * gdb.Inferior now has a new \u0027main_name\u0027 attribute.  This holds\n    the name of the inferior\u0027s \u0027main\u0027, if known.\n  * gdb.Inferior now has new methods \u0027clear_env\u0027, \u0027set_env\u0027, and\n    \u0027unset_env\u0027.  These can be used to modify the inferior\u0027s\n    environment before it is started.\n  * gdb.Value now has the \u0027assign\u0027 method.\n  * gdb.Value now has the \u0027to_array\u0027 method.  This converts an\n    array-like Value to an array.\n  * gdb.Progspace now has the new method \u0027objfile_for_address\u0027.\n    This returns the gdb.Objfile, if any, that covers a given\n    address.\n  * gdb.Breakpoint now has an \u0027inferior\u0027 attribute.  If the\n    Breakpoint object is inferior specific then this attribute\n    holds the inferior-id (an integer).  If the Breakpoint\n    object is not inferior specific, then this field contains\n    None.  This field can be written too.\n  * gdb.Type now has the \u0027is_array_like\u0027 and \u0027is_string_like\u0027\n    methods.  These reflect GDB\u0027s internal idea of whether a\n    type might be array- or string-like, even if they do not\n    have the corresponding type code.\n  * gdb.ValuePrinter is a new class that can be used as the base\n    class for the result of applying a pretty-printer.  As a\n    base class, it signals to gdb that the printer may implement\n    new pretty-printer methods.\n  * New attribute Progspace.symbol_file.  This attribute holds\n    the gdb.Objfile that corresponds to Progspace.filename (when\n    Progspace.filename is not None), otherwise, this attribute is\n    itself None.\n  * New attribute Progspace.executable_filename.  This attribute\n    holds a string containing a file name set by the \u0027exec-file\u0027\n    or \u0027file\u0027 commands, or None if no executable file is set.\n    This isn\u0027t the exact string passed by the user to these\n    commands; the file name will have been partially resolved to\n    an absolute file name.\n  * A new executable_changed event registry is available.  This\n    event emits ExecutableChangedEvent objects, which have\n    \u0027progspace\u0027 (a gdb.Progspace) and \u0027reload\u0027 (a Boolean)\n    attributes.  This event is emitted when\n    gdb.Progspace.executable_filename changes.\n  * New event registries gdb.events.new_progspace and\n    gdb.events.free_progspace, these emit NewProgspaceEvent and\n     FreeProgspaceEvent event types respectively.  Both of these\n     event types have a single \u0027progspace\u0027 attribute, which is\n     the gdb.Progspace that is either being added to GDB, or\n     removed from GDB.\n  * gdb.LazyString now implements the __str__ method.\n  * New method gdb.Frame.static_link that returns the outer\n   frame of a nested function frame.",
  "published": "2023-08-22T19:16:30Z",
  "severity": "medium",
  "cvss": 5.5,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H",
  "epss": 0.00614,
  "epssPercentile": 0.49678,
  "priority": "Routine",
  "priorityTier": 4,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "binutils",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "2.40-2",
      "fix": "DEBIAN-CVE-2022-48064",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-48064",
      "released": "2023-08-22T19:16:30Z"
    },
    {
      "platform": "linux",
      "product": "binutils",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "2.40-2",
      "fix": "DEBIAN-CVE-2022-48064",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-48064",
      "released": "2023-08-22T19:16:30Z"
    },
    {
      "platform": "linux",
      "product": "binutils",
      "release": "Debian 14",
      "fixedVersion": "2.40-2",
      "fix": "DEBIAN-CVE-2022-48064",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-48064",
      "released": "2023-08-22T19:16:30Z"
    },
    {
      "platform": "linux",
      "product": "binutils",
      "release": "amzn 2023",
      "fixedVersion": "2.39-6.amzn2023.0.9",
      "fix": "ALAS2023-2023-334",
      "url": "https://patchblox.com/security/fix/linux/alas2023-2023-334",
      "released": "2023-08-31T21:46:00Z"
    },
    {
      "platform": "linux",
      "product": "binutils-debuginfo",
      "release": "amzn 2023",
      "fixedVersion": "2.39-6.amzn2023.0.9",
      "fix": "ALAS2023-2023-334",
      "url": "https://patchblox.com/security/fix/linux/alas2023-2023-334",
      "released": "2023-08-31T21:46:00Z"
    },
    {
      "platform": "linux",
      "product": "binutils-debugsource",
      "release": "amzn 2023",
      "fixedVersion": "2.39-6.amzn2023.0.9",
      "fix": "ALAS2023-2023-334",
      "url": "https://patchblox.com/security/fix/linux/alas2023-2023-334",
      "released": "2023-08-31T21:46:00Z"
    },
    {
      "platform": "linux",
      "product": "binutils-devel",
      "release": "amzn 2023",
      "fixedVersion": "2.39-6.amzn2023.0.9",
      "fix": "ALAS2023-2023-334",
      "url": "https://patchblox.com/security/fix/linux/alas2023-2023-334",
      "released": "2023-08-31T21:46:00Z"
    },
    {
      "platform": "linux",
      "product": "binutils-gprofng",
      "release": "amzn 2023",
      "fixedVersion": "2.39-6.amzn2023.0.9",
      "fix": "ALAS2023-2023-334",
      "url": "https://patchblox.com/security/fix/linux/alas2023-2023-334",
      "released": "2023-08-31T21:46:00Z"
    },
    {
      "platform": "linux",
      "product": "binutils-gprofng-debuginfo",
      "release": "amzn 2023",
      "fixedVersion": "2.39-6.amzn2023.0.9",
      "fix": "ALAS2023-2023-334",
      "url": "https://patchblox.com/security/fix/linux/alas2023-2023-334",
      "released": "2023-08-31T21:46:00Z"
    },
    {
      "platform": "linux",
      "product": "gdb",
      "release": "opensuse-leap 15.6",
      "fixedVersion": "14.2-150400.15.20.1",
      "fix": "SUSE-SU-2024:4414-1",
      "url": "https://patchblox.com/security/fix/linux/suse-su-2024-4414-1",
      "released": "2024-12-23T19:42:54Z"
    },
    {
      "platform": "linux",
      "product": "gdb",
      "release": "sles 15.6",
      "fixedVersion": "14.2-150400.15.20.1",
      "fix": "SUSE-SU-2024:4414-1",
      "url": "https://patchblox.com/security/fix/linux/suse-su-2024-4414-1",
      "released": "2024-12-23T19:42:54Z"
    },
    {
      "platform": "linux",
      "product": "gdb-testresults",
      "release": "opensuse-leap 15.6",
      "fixedVersion": "14.2-150400.15.20.1",
      "fix": "SUSE-SU-2024:4414-1",
      "url": "https://patchblox.com/security/fix/linux/suse-su-2024-4414-1",
      "released": "2024-12-23T19:42:54Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T00:53:09Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}