{
  "cveId": "CVE-2021-47169",
  "url": "https://patchblox.com/security/cve/CVE-2021-47169",
  "summary": "CVE-2021-47169 is fixed in linux on 1 platform, first by DEBIAN-CVE-2021-47169, released March 25, 2024. It is not reported as exploited. Patch Radar priority: Routine.",
  "title": "linux: In the Linux kernel, the following vulnerability has been resolved:  serial: rp2: use \u0027request_firmware\u0027 instead of \u0027...",
  "description": "In the Linux kernel, the following vulnerability has been resolved:  serial: rp2: use \u0027request_firmware\u0027 instead of \u0027request_firmware_nowait\u0027  In \u0027rp2_probe\u0027, the driver registers \u0027rp2_uart_interrupt\u0027 then calls \u0027rp2_fw_cb\u0027 through \u0027request_firmware_nowait\u0027. In \u0027rp2_fw_cb\u0027, if the firmware don\u0027t exists, function just return without initializing ports of \u0027rp2_card\u0027. But now the interrupt handler function has been registered, and when an interrupt comes, \u0027rp2_uart_interrupt\u0027 may access those ports then causing NULL pointer dereference or other bugs.  Because the driver does some initialization work in \u0027rp2_fw_cb\u0027, in order to make the driver ready to handle interrupts, \u0027request_firmware\u0027 should be used instead of asynchronous \u0027request_firmware_nowait\u0027.  This report reveals it:  INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.19.177-gdba4159c14ef-dirty #45 Hardware name: QEMU Standard PC (Q35 \u002B ICH9, 2009), BIOS rel-1.12.0-59- gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace:  \u003CIRQ\u003E  __dump_stack lib/dump_stack.c:77 [inline]  dump_stack\u002B0xec/0x156 lib/dump_stack.c:118  assign_lock_key kernel/locking/lockdep.c:727 [inline]  register_lock_class\u002B0x14e5/0x1ba0 kernel/locking/lockdep.c:753  __lock_acquire\u002B0x187/0x3750 kernel/locking/lockdep.c:3303  lock_acquire\u002B0x124/0x340 kernel/locking/lockdep.c:3907  __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]  _raw_spin_lock\u002B0x32/0x50 kernel/locking/spinlock.c:144  spin_lock include/linux/spinlock.h:329 [inline]  rp2_ch_interrupt drivers/tty/serial/rp2.c:466 [inline]  rp2_asic_interrupt.isra.9\u002B0x15d/0x990 drivers/tty/serial/rp2.c:493  rp2_uart_interrupt\u002B0x49/0xe0 drivers/tty/serial/rp2.c:504  __handle_irq_event_percpu\u002B0xfb/0x770 kernel/irq/handle.c:149  handle_irq_event_percpu\u002B0x79/0x150 kernel/irq/handle.c:189  handle_irq_event\u002B0xac/0x140 kernel/irq/handle.c:206  handle_fasteoi_irq\u002B0x232/0x5c0 kernel/irq/chip.c:725  generic_handle_irq_desc include/linux/irqdesc.h:155 [inline]  handle_irq\u002B0x230/0x3a0 arch/x86/kernel/irq_64.c:87  do_IRQ\u002B0xa7/0x1e0 arch/x86/kernel/irq.c:247  common_interrupt\u002B0xf/0xf arch/x86/entry/entry_64.S:670  \u003C/IRQ\u003E RIP: 0010:native_safe_halt\u002B0x28/0x30 arch/x86/include/asm/irqflags.h:61 Code: 00 00 55 be 04 00 00 00 48 c7 c7 00 c2 2f 8c 48 89 e5 e8 fb 31 e7 f8 8b 05 75 af 8d 03 85 c0 7e 07 0f 00 2d 8a 61 65 00 fb f4 \u003C5d\u003E c3 90 90 90 90 90 90 0f 1f 44 00 00 55 48 89 e5 41 57 41 56 41 RSP: 0018:ffff88806b71fcc8 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffde RAX: 0000000000000000 RBX: ffffffff8bde7e48 RCX: ffffffff88a21285 RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff8c2fc200 RBP: ffff88806b71fcc8 R08: fffffbfff185f840 R09: fffffbfff185f840 R10: 0000000000000001 R11: fffffbfff185f840 R12: 0000000000000002 R13: ffffffff8bea18a0 R14: 0000000000000000 R15: 0000000000000000  arch_safe_halt arch/x86/include/asm/paravirt.h:94 [inline]  default_idle\u002B0x6f/0x360 arch/x86/kernel/process.c:557  arch_cpu_idle\u002B0xf/0x20 arch/x86/kernel/process.c:548  default_idle_call\u002B0x3b/0x60 kernel/sched/idle.c:93  cpuidle_idle_call kernel/sched/idle.c:153 [inline]  do_idle\u002B0x2ab/0x3c0 kernel/sched/idle.c:263  cpu_startup_entry\u002B0xcb/0xe0 kernel/sched/idle.c:369  start_secondary\u002B0x3b8/0x4e0 arch/x86/kernel/smpboot.c:271  secondary_startup_64\u002B0xa4/0xb0 arch/x86/kernel/head_64.S:243 BUG: unable to handle kernel NULL pointer dereference at 0000000000000010 PGD 8000000056d27067 P4D 8000000056d27067 PUD 56d28067 PMD 0 Oops: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.19.177-gdba4159c14ef-dirty #45 Hardware name: QEMU Standard PC (Q35 \u002B ICH9, 2009), BIOS rel-1.12.0-59- gc9ba5276e321-prebuilt.qemu.org 04/01/2014 RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline] RIP: 0010:rp2_ch_interrupt drivers/tty/serial/rp2.c:472 [inline] RIP: 0010:rp2_asic_interrupt.isra.9\u002B0x181/0x990 drivers/tty/serial/rp2.c: 493 Co ---truncated---",
  "published": "2024-03-25T10:15:08Z",
  "severity": "medium",
  "cvss": 5.5,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
  "epss": 0.00226,
  "epssPercentile": 0.13389,
  "priority": "Routine",
  "priorityTier": 4,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "5.14.6-1",
      "fix": "DEBIAN-CVE-2021-47169",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2021-47169",
      "released": "2024-03-25T10:15:08Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "5.14.6-1",
      "fix": "DEBIAN-CVE-2021-47169",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2021-47169",
      "released": "2024-03-25T10:15:08Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "5.14.6-1",
      "fix": "DEBIAN-CVE-2021-47169",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2021-47169",
      "released": "2024-03-25T10:15:08Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-09T01:18:40Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}