GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2022-49555 (GCVE-0-2022-49555)

Vulnerability from cvelistv5 – Published: 2025-02-26 02:14 – Updated: 2026-08-05 08:55
VLAI
Title
Bluetooth: hci_qca: Use del_timer_sync() before freeing
Summary
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_qca: Use del_timer_sync() before freeing While looking at a crash report on a timer list being corrupted, which usually happens when a timer is freed while still active. This is commonly triggered by code calling del_timer() instead of del_timer_sync() just before freeing. One possible culprit is the hci_qca driver, which does exactly that. Eric mentioned that wake_retrans_timer could be rearmed via the work queue, so also move the destruction of the work queue before del_timer_sync().
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 0ff252c1976da5d80db1377eb39b551931e61826 , < 4989bb03342941f2b730b37dfa38bce27b543661 (git)
Affected: 0ff252c1976da5d80db1377eb39b551931e61826 , < db03727b4bbbbb36e6ef4cb655c670eefb6448e9 (git)
Affected: 0ff252c1976da5d80db1377eb39b551931e61826 , < 37d17f63d085d601011964ade7371aeebeb6ed4b (git)
Affected: 0ff252c1976da5d80db1377eb39b551931e61826 , < 2717654ae022e6ea959a4b7b762702fe1a4690c2 (git)
Affected: 0ff252c1976da5d80db1377eb39b551931e61826 , < 72ef98445aca568a81c2da050532500a8345ad3a (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.3
Unaffected: 0 , < 4.3 (semver)
Unaffected: 5.10.120 , ≤ 5.10.* (semver)
Unaffected: 5.15.45 , ≤ 5.15.* (semver)
Unaffected: 5.17.13 , ≤ 5.17.* (semver)
Unaffected: 5.18.2 , ≤ 5.18.* (semver)
Unaffected: 5.19 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/bluetooth/hci_qca.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "4989bb03342941f2b730b37dfa38bce27b543661",
              "status": "affected",
              "version": "0ff252c1976da5d80db1377eb39b551931e61826",
              "versionType": "git"
            },
            {
              "lessThan": "db03727b4bbbbb36e6ef4cb655c670eefb6448e9",
              "status": "affected",
              "version": "0ff252c1976da5d80db1377eb39b551931e61826",
              "versionType": "git"
            },
            {
              "lessThan": "37d17f63d085d601011964ade7371aeebeb6ed4b",
              "status": "affected",
              "version": "0ff252c1976da5d80db1377eb39b551931e61826",
              "versionType": "git"
            },
            {
              "lessThan": "2717654ae022e6ea959a4b7b762702fe1a4690c2",
              "status": "affected",
              "version": "0ff252c1976da5d80db1377eb39b551931e61826",
              "versionType": "git"
            },
            {
              "lessThan": "72ef98445aca568a81c2da050532500a8345ad3a",
              "status": "affected",
              "version": "0ff252c1976da5d80db1377eb39b551931e61826",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/bluetooth/hci_qca.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.3"
            },
            {
              "lessThan": "4.3",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.120",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.45",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.17.*",
              "status": "unaffected",
              "version": "5.17.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.18.*",
              "status": "unaffected",
              "version": "5.18.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.19",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.120",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.45",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.17.13",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18.2",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_qca: Use del_timer_sync() before freeing\n\nWhile looking at a crash report on a timer list being corrupted, which\nusually happens when a timer is freed while still active. This is\ncommonly triggered by code calling del_timer() instead of\ndel_timer_sync() just before freeing.\n\nOne possible culprit is the hci_qca driver, which does exactly that.\n\nEric mentioned that wake_retrans_timer could be rearmed via the work\nqueue, so also move the destruction of the work queue before\ndel_timer_sync()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached on local HCI UART protocol teardown (hci_uart_tty_close/hci_uart_unregister_device \u2192 qca_close), not by processing Bluetooth radio frames from a peer, matching other local HCI/UART close scores rather than Adjacent RF bugs.\nAC:L - An attacker who drives IBS TX/wake work to arm or queue re-arm of tx_idle_timer/wake_retrans_timer and then closes the N_HCI/QCA instance controls both sides of the del_timer-versus-workqueue-rearm race, and can retry until the free hits an active timer.\nPR:L - Affected LTS kernels before the 5.16 CAP_NET_ADMIN gate allow unprivileged N_HCI attach (including via PTY), and even where CAP_NET_ADMIN is required it is scored Low under the overestimate rule used for other HCI management bugs.\nUI:N - The attacker opens/configures the HCI UART QCA protocol and closes the descriptor (or unbinds) themselves; no separate victim action is required.\nS:U - Impact is host-kernel heap/timer-list corruption within the same OS security authority, with no VM escape, IOMMU bypass, or other cross-boundary effect.\nC:H - Freeing qca_data while its embedded timers remain active is a use-after-free; a groomed reallocation can be read back when the timer fires, enabling arbitrary kernel disclosure per UAF guidance.\nI:H - The same timer UAF lets the timer core operate on and invoke callbacks from freed/reallocated memory, yielding heap-spray write and control-flow hijack primitives.\nA:H - An active timer freed with the qca object reliably corrupts the timer wheel/slab and can oops/panic even when not fully exploited, which is Availability High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:55:41.869Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/4989bb03342941f2b730b37dfa38bce27b543661"
        },
        {
          "url": "https://git.kernel.org/stable/c/db03727b4bbbbb36e6ef4cb655c670eefb6448e9"
        },
        {
          "url": "https://git.kernel.org/stable/c/37d17f63d085d601011964ade7371aeebeb6ed4b"
        },
        {
          "url": "https://git.kernel.org/stable/c/2717654ae022e6ea959a4b7b762702fe1a4690c2"
        },
        {
          "url": "https://git.kernel.org/stable/c/72ef98445aca568a81c2da050532500a8345ad3a"
        }
      ],
      "title": "Bluetooth: hci_qca: Use del_timer_sync() before freeing",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-49555",
    "datePublished": "2025-02-26T02:14:03.150Z",
    "dateReserved": "2025-02-26T02:08:31.590Z",
    "dateUpdated": "2026-08-05T08:55:41.869Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-49555",
      "date": "2026-09-14",
      "epss": "0.0027",
      "percentile": "0.19139"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-49555\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-02-26T07:01:31.313\",\"lastModified\":\"2026-08-04T10:17:51.303\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nBluetooth: hci_qca: Use del_timer_sync() before freeing\\n\\nWhile looking at a crash report on a timer list being corrupted, which\\nusually happens when a timer is freed while still active. This is\\ncommonly triggered by code calling del_timer() instead of\\ndel_timer_sync() just before freeing.\\n\\nOne possible culprit is the hci_qca driver, which does exactly that.\\n\\nEric mentioned that wake_retrans_timer could be rearmed via the work\\nqueue, so also move the destruction of the work queue before\\ndel_timer_sync().\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: Bluetooth: hci_qca: usar del_timer_sync() antes de liberar Al mirar un informe de fallas en una lista de temporizadores que se est\u00e1 corrompiendo, lo que generalmente sucede cuando se libera un temporizador mientras a\u00fan est\u00e1 activo. Esto se activa com\u00fanmente por el c\u00f3digo que llama a del_timer() en lugar de del_timer_sync() justo antes de liberar. Un posible culpable es el controlador hci_qca, que hace exactamente eso. Eric mencion\u00f3 que wake_retrans_timer podr\u00eda volver a armarse a trav\u00e9s de la cola de trabajo, as\u00ed que tambi\u00e9n mueva la destrucci\u00f3n de la cola de trabajo antes de del_timer_sync().\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/bluetooth/hci_qca.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"0ff252c1976da5d80db1377eb39b551931e61826\",\"lessThan\":\"4989bb03342941f2b730b37dfa38bce27b543661\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0ff252c1976da5d80db1377eb39b551931e61826\",\"lessThan\":\"db03727b4bbbbb36e6ef4cb655c670eefb6448e9\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0ff252c1976da5d80db1377eb39b551931e61826\",\"lessThan\":\"37d17f63d085d601011964ade7371aeebeb6ed4b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0ff252c1976da5d80db1377eb39b551931e61826\",\"lessThan\":\"2717654ae022e6ea959a4b7b762702fe1a4690c2\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0ff252c1976da5d80db1377eb39b551931e61826\",\"lessThan\":\"72ef98445aca568a81c2da050532500a8345ad3a\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/bluetooth/hci_qca.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.3\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.3\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.120\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.45\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.17.13\",\"lessThanOrEqual\":\"5.17.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.18.2\",\"lessThanOrEqual\":\"5.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.19\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.3\",\"versionEndExcluding\":\"5.10.120\",\"matchCriteriaId\":\"F54DF9A7-F274-4785-8B1B-D8C960AD1DA9\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.45\",\"matchCriteriaId\":\"08D699AD-F4CE-4BDD-A97E-4997299C7712\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"5.17.13\",\"matchCriteriaId\":\"192FC54B-5367-49D6-B410-0285F14665B1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.18\",\"versionEndExcluding\":\"5.18.2\",\"matchCriteriaId\":\"9FF255A1-64F4-4E31-AF44-C92FB8773BA2\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2717654ae022e6ea959a4b7b762702fe1a4690c2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/37d17f63d085d601011964ade7371aeebeb6ed4b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/4989bb03342941f2b730b37dfa38bce27b543661\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/72ef98445aca568a81c2da050532500a8345ad3a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/db03727b4bbbbb36e6ef4cb655c670eefb6448e9\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:38:42+00:00",
      "cve": "CVE-2022-49555",
      "id": "CVE-2022-49555",
      "initial_release_date": "2022-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: Bluetooth: hci_qca: Use del_timer_sync() before freeing",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-49555.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…