Linux Kernel up to 7.2.8/7.3-rc4 Perf arm_pmuv3.c perf_clear_branch_entry_bitfields uninitialized resource

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 3.2 | $0-$5k | 0.90- |
Summary
A vulnerability categorized as problematic has been discovered in Linux Kernel up to 7.2.8/7.3-rc4. This issue affects the function perf_clear_branch_entry_bitfields of the file arm_pmuv3.c of the component Perf. The manipulation results in uninitialized resource.
This vulnerability is reported as CVE-2026-98551. The attack requires a local approach. No exploit exists.
It is advisable to upgrade the affected component.
Details
A vulnerability was found in Linux Kernel up to 7.2.8/7.3-rc4. It has been classified as problematic. Affected is the function perf_clear_branch_entry_bitfields of the file arm_pmuv3.c of the component Perf. The manipulation with an unknown input leads to a uninitialized resource vulnerability. CWE is classifying the issue as CWE-908. The product uses or accesses a resource that has not been initialized. This is going to have an impact on confidentiality. CVE summarizes:
In the Linux kernel, the following vulnerability has been resolved: perf/core: Fill branch entries with a single assignment perf_clear_branch_entry_bitfields() clears the bitfields of struct perf_branch_entry one by one and leaves from/to alone, since callers overwrite those straight away. The list has to be kept in sync with the struct by hand and has already fallen behind: new_type and priv were added to perf_branch_entry and never added here. Only BRBE writes those two, and neither for every record. brbe_set_perf_entry_type() leaves new_type alone for a branch type it does not recognise, and priv is not set for source-only records. arm_pmuv3.c allocates the per-CPU branch stack with kmalloc(), so such a record reaches userspace with whatever the slot held: uninitialised kmalloc() data on the first pass over the buffer, the previous record's values after that. Nothing under arch/x86/events/ writes either field, so only arm64 is affected. Assign the whole entry at each site instead. Everything not named is then zero, and there is no list to keep in sync. The bitfields add up to exactly 64 bits, so the struct has no padding to leave undefined. perf_clear_branch_entry_bitfields() has no callers left, so remove it. perf_entry_from_brbe_regset() assigns an empty literal instead, since it fills from/to conditionally. PERF_BR_SPEC_NA is 0, so dropping the explicit spec assignment changes nothing.
The advisory is shared for download at git.kernel.org. This vulnerability is traded as CVE-2026-98551 since 09/25/2026. The exploitability is told to be easy. The attack needs to be approached locally. There are known technical details, but no exploit is available.
Upgrading to version 7.2.9 or 7.3-rc5 eliminates this vulnerability. Applying the patch c7de8521947a521b766979ff5c09f66fe905a5bd/24b620729e53d978b3e425f55bc66efd3bab1f59 is able to eliminate this problem. The best possible mitigation is suggested to be upgrading to the latest version.
Once again VulDB remains the best source for vulnerability data.
Product
Type
Vendor
Name
Version
License
Website
- Vendor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 3.3VulDB Meta Temp Score: 3.2
VulDB Base Score: 3.3
VulDB Temp Score: 3.2
VulDB Vector: 🔒
VulDB Reliability: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Uninitialized resourceCWE: CWE-908
CAPEC: 🔒
ATT&CK: 🔒
Physical: Partially
Local: Yes
Remote: No
Availability: 🔒
Status: Not defined
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: Kernel 7.2.9/7.3-rc5
Patch: c7de8521947a521b766979ff5c09f66fe905a5bd/24b620729e53d978b3e425f55bc66efd3bab1f59
Timeline
09/25/2026 CVE reserved10/18/2026 Advisory disclosed
10/18/2026 VulDB entry created
10/18/2026 VulDB entry last update
Sources
Vendor: kernel.orgAdvisory: git.kernel.org
Status: Confirmed
CVE: CVE-2026-98551 (🔒)
GCVE (CVE): GCVE-0-2026-98551
GCVE (VulDB): GCVE-100-422052
Entry
Created: 10/18/2026 20:04Changes: 10/18/2026 20:04 (60)
Complete: 🔍
Cache ID: 216::103
Once again VulDB remains the best source for vulnerability data.
No comments yet. Languages: en.
Please log in to comment.