# CVE-2019-10639: Information disclosure in n/a

> Remote attackers can bypass KASLR by extracting kernel address offsets via IP ID collisions in UDP or ICMP traffic, facilitating further exploitation.

- **Severity:** High 7.5 (`CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 5 Jul 2019
- **Updated:** 4 Aug 2024
- **Also known as:** DEBIAN-CVE-2019-10639, GHSA-r86q-xwfj-whpp, UBUNTU-CVE-2019-10639

## What is CVE-2019-10639?

CVE-2019-10639 is a high-severity vulnerability in Linux kernel, published on 5 Jul 2019. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

The Linux kernel 4.x (starting from 4.1) and 5.x before 5.0.8 allows Information Exposure (partial kernel address disclosure), leading to a KASLR bypass. Specifically, it is possible to extract the KASLR kernel image offset using the IP ID values the kernel produces for connection-less protocols (e.g., UDP and ICMP). When such traffic is sent to multiple destination IP addresses, it is possible to obtain hash collisions (of indices to the counter array) and thereby obtain the hashing key (via enumeration). This key contains enough bits from a kernel address (of a static variable) so when the key is extracted (via enumeration), the offset of the kernel image is exposed. This attack can be carried out remotely, by the attacker forcing the target device to send UDP or ICMP (or certain other) traffic to attacker-controlled IP addresses. Forcing a server to send UDP traffic is trivial if the server is a DNS server. ICMP traffic is trivial if the server answers ICMP Echo requests (ping). For client targets, if the target visits the attacker's web page, then WebRTC or gQUIC can be used to force UDP traffic to attacker-controlled IP addresses. NOTE: this attack against KASLR became viable in 4.1 because IP ID generation was changed to have a dependency on an address associated with a network namespace.

Weakness: CWE-326 (Inadequate Encryption Strength)

## Which versions are affected by CVE-2019-10639?

It affects 1 product.


Products: Linux kernel.

## How do I fix CVE-2019-10639?

Upgrade to a fixed version.

## Is CVE-2019-10639 being exploited?

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

## Other vulnerabilities in Linux kernel

- [CVE-2026-53266](https://insights.sbomify.com/CVE-2026-53266/): Linux Kernel Out-of-Bounds Write (high 8.8, exploited in the wild)
- [CVE-2013-6282](https://insights.sbomify.com/CVE-2013-6282/): Linux Kernel Improper Input Validation (high 8.8, exploited in the wild)
- [CVE-2022-0185](https://insights.sbomify.com/CVE-2022-0185/): Linux Kernel Heap-Based Buffer Overflow (high 8.4, exploited in the wild)
- [CVE-2013-2094](https://insights.sbomify.com/CVE-2013-2094/): Linux Kernel Privilege Escalation (high 8.4, exploited in the wild)
- [CVE-2026-53362](https://insights.sbomify.com/CVE-2026-53362/): Linux Kernel Unspecified (high 7.8, exploited in the wild)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2019-10639 and fix it if it is affected.

What it is: CVE-2019-10639 is a high-severity vulnerability in Linux kernel, published on 5 Jul 2019. 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-2019-10639 in the wild and no public exploit code.

Affected product: Linux kernel. 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-2019-10639/ (Markdown: https://insights.sbomify.com/CVE-2019-10639/index.md)
```

## Sources

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

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