# CVE-2024-48981: Memory corruption in n/a

> A buffer overflow in MBed OS HCI packet processing allows attackers to achieve arbitrary write and code execution via crafted packets.

- **Severity:** High 7.5 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** No
- **Published:** 20 Nov 2024
- **Updated:** 25 Nov 2024
- **Also known as:** GHSA-q5q7-8864-fg9c

## What is CVE-2024-48981?

CVE-2024-48981 is a high-severity memory corruption vulnerability in n/a, published on 20 Nov 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

An issue was discovered in MBed OS 6.16.0. During processing of HCI packets, the software dynamically determines the length of the packet header by looking up the identifying first byte and matching it against a table of possible lengths. The initial parsing function, hciTrSerialRxIncoming does not drop packets with invalid identifiers but also does not set a safe default for the length of unknown packets' headers, leading to a buffer overflow. This can be leveraged into an arbitrary write by an attacker. It is possible to overwrite the pointer to a not-yet-allocated buffer that is supposed to receive the contents of the packet body. One can then overwrite the state variable used by the function to determine which state of packet parsing is currently occurring. Because the buffer is allocated when the last byte of the header has been copied, the combination of having a bad header length variable that will never match the counter variable and being able to overwrite the state variable with the resulting buffer overflow can be used to advance the function to the next step while skipping the buffer allocation and resulting pointer write. The next 16 bytes from the packet body are then written wherever the corrupted data pointer is pointing.

Weakness: CWE-120 (Buffer Copy without Checking Size of Input)

## Which versions are affected by CVE-2024-48981?

It affects 1 product.


Products: Arm Mbed.

## How do I fix CVE-2024-48981?

No fix has been published for CVE-2024-48981 yet. Limit exposure of the affected software until one is available.

## Is CVE-2024-48981 being exploited?

There is no known exploitation of CVE-2024-48981 in the wild and no public exploit code.

## Other vulnerabilities in n/a

- [CVE-2024-48982](https://insights.sbomify.com/CVE-2024-48982/): Integer overflow in n/a (high 7.5)
- [CVE-2024-48983](https://insights.sbomify.com/CVE-2024-48983/): Integer overflow in n/a (high 7.5)
- [CVE-2024-48985](https://insights.sbomify.com/CVE-2024-48985/): Memory corruption in n/a (high 7.5)
- [CVE-2024-48986](https://insights.sbomify.com/CVE-2024-48986/): Memory corruption in n/a (high 7.5)
- [CVE-2021-27435](https://insights.sbomify.com/CVE-2021-27435/): ARM mbed Integer Overflow or Wraparound (high 7.3)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2024-48981 and fix it if it is affected.

What it is: CVE-2024-48981 is a high-severity memory corruption vulnerability in n/a, published on 20 Nov 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2024-48981 in the wild and no public exploit code.

Affected product: n/a. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2024-48981/ (Markdown: https://insights.sbomify.com/CVE-2024-48981/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2024-48981
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2024-48981
- OSV: https://osv.dev/vulnerability/CVE-2024-48981

---
From sbomify Insights: https://insights.sbomify.com/CVE-2024-48981/
Summaries are generated and may contain mistakes; the official description above is the record.
