ubuntu-cve-2026-72693
Vulnerability from osv_ubuntu
openvt -u is intended to identify the owner of the current VT and then execute login as that user from a privileged context. In the documented kbrequest/init usage, the ownership test in authenticate_user() relies on stat("/proc/<pid>/fd/0"). stat() on /proc/<pid>/fd/0 follows the symlink to the underlying TTY device node. As a result, buf.st_uid reflects the owner of the TTY node rather than the owner of the process holding the file descriptor. If the TTY owner returns to root or the getty owner after logout while an unprivileged process still has fd 0 attached to that TTY, the check can incorrectly treat that process as belonging to the privileged console owner. Once that check succeeds, the -u path executes a passwordless login as the selected user. In the documented kbrequest/init deployment using openvt -us, this can result in passwordless login -f root on the spawned VT. This report establishes that privilege escalation path for that documented deployment; it does not claim equivalent reachability for deployments that do not use openvt -u from a privileged kbrequest/init path.
{
"affected": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "kbd",
"binary_version": "1.15.5-1ubuntu1"
}
]
},
"package": {
"ecosystem": "Ubuntu:14.04:LTS",
"name": "kbd",
"purl": "pkg:deb/ubuntu/kbd@1.15.5-1ubuntu1?arch=source\u0026distro=trusty"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.15.5-1ubuntu1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "kbd",
"binary_version": "1.15.5-1ubuntu5"
}
]
},
"package": {
"ecosystem": "Ubuntu:16.04:LTS",
"name": "kbd",
"purl": "pkg:deb/ubuntu/kbd@1.15.5-1ubuntu5?arch=source\u0026distro=xenial"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.15.5-1ubuntu4",
"1.15.5-1ubuntu5"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "kbd",
"binary_version": "2.0.4-2ubuntu1"
}
]
},
"package": {
"ecosystem": "Ubuntu:18.04:LTS",
"name": "kbd",
"purl": "pkg:deb/ubuntu/kbd@2.0.4-2ubuntu1?arch=source\u0026distro=bionic"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.0.3-2ubuntu3",
"2.0.4-2ubuntu1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "kbd",
"binary_version": "2.0.4-4ubuntu2"
}
]
},
"package": {
"ecosystem": "Ubuntu:20.04:LTS",
"name": "kbd",
"purl": "pkg:deb/ubuntu/kbd@2.0.4-4ubuntu2?arch=source\u0026distro=focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.0.4-4ubuntu2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "kbd",
"binary_version": "2.3.0-3ubuntu4.22.04"
}
]
},
"package": {
"ecosystem": "Ubuntu:22.04:LTS",
"name": "kbd",
"purl": "pkg:deb/ubuntu/kbd@2.3.0-3ubuntu4.22.04?arch=source\u0026distro=jammy"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.3.0-3ubuntu3",
"2.3.0-3ubuntu4",
"2.3.0-3ubuntu4.22.04"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "kbd",
"binary_version": "2.6.4-2ubuntu2"
}
]
},
"package": {
"ecosystem": "Ubuntu:24.04:LTS",
"name": "kbd",
"purl": "pkg:deb/ubuntu/kbd@2.6.4-2ubuntu2?arch=source\u0026distro=noble"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.5.1-1ubuntu1",
"2.6.4-2ubuntu1",
"2.6.4-2ubuntu2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "kbd",
"binary_version": "2.7.1-2ubuntu2"
}
]
},
"package": {
"ecosystem": "Ubuntu:26.04:LTS",
"name": "kbd",
"purl": "pkg:deb/ubuntu/kbd@2.7.1-2ubuntu2?arch=source\u0026distro=resolute"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.7.1-2ubuntu1",
"2.7.1-2ubuntu2"
]
}
],
"aliases": [],
"details": "`openvt -u` is intended to identify the owner of the current VT and then execute `login` as that user from a privileged context. In the documented `kbrequest`/init usage, the ownership test in `authenticate_user()` relies on `stat(\"/proc/\u003cpid\u003e/fd/0\")`. `stat()` on `/proc/\u003cpid\u003e/fd/0` follows the symlink to the underlying TTY device node. As a result, `buf.st_uid` reflects the owner of the TTY node rather than the owner of the process holding the file descriptor. If the TTY owner returns to `root` or the getty owner after logout while an unprivileged process still has `fd 0` attached to that TTY, the check can incorrectly treat that process as belonging to the privileged console owner. Once that check succeeds, the `-u` path executes a passwordless login as the selected user. In the documented `kbrequest`/init deployment using `openvt -us`, this can result in passwordless `login -f root` on the spawned VT. This report establishes that privilege escalation path for that documented deployment; it does not claim equivalent reachability for deployments that do not use `openvt -u` from a privileged `kbrequest`/init path.",
"id": "UBUNTU-CVE-2026-72693",
"modified": "2026-08-13T00:00:00Z",
"published": "2026-08-13T00:00:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2026-72693"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72693"
},
{
"type": "REPORT",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2462115"
},
{
"type": "REPORT",
"url": "https://access.redhat.com/security/cve/CVE-2026-72693"
}
],
"related": [],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2026-72693"
]
}
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.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.