CVE-2026-80876

Source
https://cve.org/CVERecord?id=CVE-2026-80876
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80876.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-80876
Downstream
Published
2026-09-04T16:48:50.082Z
Modified
2026-09-06T03:47:01.427273799Z
Summary
ring-buffer: Fix event length with forced 8-byte alignment
Details

In the Linux kernel, the following vulnerability has been resolved:

ring-buffer: Fix event length with forced 8-byte alignment

When RBFORCE8BYTEALIGNMENT is true, rbcalculateeventlength() reserves the space of event->array[0] for placing the data length and rbupdateevent() stores the data length in event->array[0] accordingly. As a result the whole event length will add extra 4 bytes for sizeof(event.array[0]) unconditionally.

But ringbuffereventlength() only subtracts the sizeof(event->array[0]) for events larger than RBMAXSMALLDATA + sizeof(event->array[0]). As a result, small events on architectures with RBFORCE8BYTE_ALIGNMENT=true report a data length that is 4 bytes larger than expected.

To fix it, add the RBFORCE8BYTEALIGNMENT as a condition to subtract the size of that length field whenever RBFORCE8BYTEALIGNMENT is true.

This issue is observed in a riscv64 kernel with CONFIGHAVE64BITALIGNEDACCESS set to y, when we run ftrace selftest tracemarkerraw.tc, we get the weird log: for cases where the id is 1..100, the number of data field is 8N, but once id exceeds 100, the number of data field becomes 8N+4: # 1 buf: 58 00 00 00 80 5e d1 63 (number of data field is 81) ... # a buf: 58 ... (number of data field is 82) ... # 64 buf: 58 ... (number of data field is 813) # 65 buf: 58 ... (number of data field is 813+4)

After applying this change, the number of data field keeps being 8*N+4 consistently.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/80xxx/CVE-2026-80876.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
2271048d1b3b0aabf83d25b29c20646dcabedc05
Fixed
7c9f0ccf9f04142458d2ac3d39414f4acae242f0
Fixed
24c3fa71f9947b0e1f3b954db1b769b44140192e
Fixed
14057268e79654c3e8ea2c9b5204cb9644b2964d
Fixed
dbcb8635b1eb7603818591cf745c7b1d714f7ac6
Fixed
cfada73fabe2ccc06ec77fe2ceaa088689213326
Fixed
ec5e96aee75d27779b9a860307679f13f33adb0c
Fixed
3a63a11897c7ba32d1be7a3fdbc48a8b01cf4992
Fixed
c37e0a4b79a6bbb96ce5ffe279d7c001e20529e0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80876.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.6.34
Fixed
5.10.261
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.212
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.178
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.145
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.97
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.40
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.5

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-80876.json"