From: AL-KERNEL <[email protected]>
To: [email protected]
Subject: [CVE-2026-81003][IMPORTANT] net/iucv: filter frames in afiucv_hs_rcv() by ingress device
Date: Fri, 11 Sep 2026 18:41:30 -0400 [thread overview]
Message-ID: <[email protected]> (raw)
CVE: CVE-2026-81003
Priority: IMPORTANT
AL-KERNEL base severity: IMPORTANT
KPANIC flag: YES
Patch: net/iucv: filter frames in afiucv_hs_rcv() by ingress device
Commit: dfac2936b83be00035ae176f8252e1c1e1de9207
Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=dfac2936b83be00035ae176f8252e1c1e1de9207
Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-81003
Analysis date: Fri, 11 Sep 2026 18:41:30 -0400
ActionableScore: 7
ActionableScore lower bound: 6
Actionable bucket: Strong Important candidate
Manual review required: YES
Summary:
AF_IUCV HiperSockets receive handling failed to verify the ingress device before socket matching, allowing same-segment or namespace-local forged frames to reach the wrong socket and cause data injection, peer spoofing, connection disruption, or DoS.
======================================================================
ABOUT THIS REPORT
======================================================================
The original Linux kernel CVE announcement for CVE-2026-81003 is available here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-81003
The original announcement does not normally provide a security severity
estimate, CVSS assessment, or enough information to determine whether the
reported kernel bug represents a practically relevant security issue.
This report was generated by AL-KERNEL, an AI-assisted Linux kernel
vulnerability analysis system developed by Alexander Larkin. It combines
an autonomous classifier with LLM-assisted technical analysis and a
separate ActionableScore mechanism.
The purpose of this report is to prioritize Linux kernel CVEs before
manual review, identify cases that require prompt investigation, and
support automatic closure of issues that are unlikely to have meaningful
security impact.
Published priority for this report: IMPORTANT
Manual review required: YES
A detailed explanation of the methodology and priority rules is included
at the end of this message.
======================================================================
AL-KERNEL CLASSIFICATION RESULT
======================================================================
CVE-2026-81003 IMPORTANT https://www.kernelcve.org/list/?q=CVE-2026-81003 CHECK WITH IMPACT FROM ORIG NN LOW Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H';CWE-346;CWE-284;CWE-668;Other CVSS 'AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H';BEST CVSS score: '8.3';DESCR 'AF_IUCV HiperSockets receive handling selected sockets by four name fields in the transport header but did not verify the ingress netdev. A frame received on one device or from a network namespace could be delivered to a socket bound to another IQD device or to an init_net socket, allowing accept queue exhaustion, attacker controlled peer identity, data injection into existing sockets, bogus fabric replies, or termination of established connections. For the CVSS the PR:N is used for the paranoid score because a peer on the same HiperSockets segment can send spoofed AF_IUCV frames without needing a local account on the victim. A local namespace trigger also exists and would map to PR:L if only local container style access is considered. The issue is network adjacent rather than Internet routable because exploitation generally requires access to the same HiperSockets segment or local namespace based frame injection. Impact is mainly denial of service and integrity compromise of AF_IUCV communication, with limited confidentiality concern from spoofing or misdelivery rather than kernel memory disclosure.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Strong Important candidate (with actual score 7) YES HARDWARE LINUS KPANIC INCREASED_TO_MODERATE7_FROM_LOW_BASED_ON_GUESSCVSS_AND_ACTIONABLESCOREHIGHER4 KPANIC INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHERTHAN5 NO NO checked
======================================================================
ACTIONABLESCORE ANALYSIS
======================================================================
ActionableScore=7
ActionableScoreLower=6
PrimitiveClass=CLASS_A
RealUAF=NO
HostAdminRequired=NO
NamespaceScopedPrivilege=YES
ImportantCandidate=YES
ManualReview=REQUIRED
AutoDowngradeAllowed=NO
## 1. ActionableScore
* Raw conservative score: 6
* Conservative score: 6
* Raw paranoid score: 7
* Paranoid score: 7
* Final recommended bucket: **Strong Important candidate**::
No floor or cap was applied.
## 2. Signal breakdown
Conservative signals:
* +2 Concrete security-boundary bypass: `afiucv_hs_rcv()` matched sockets only by AF_IUCV header name fields and did not verify the ingress `net_device`, allowing frames from one device or namespace to be delivered to sockets belonging to another device or `init_net`.
* +1 Local unprivileged trigger: supplied context explicitly states that a process in an unprivileged user and network namespace with namespace-local `CAP_NET_RAW` can send a raw `ETH_P_AF_IUCV` frame on its own `lo` device and match `init_net` sockets.
* +1 Integrity impact: the bug can allow attacker-controlled peer identity and data injection into existing sockets.
* +1 Reliable DoS: the bug can cause accept-queue exhaustion, unusable accepted sockets, bogus fabric replies, and termination of established connections.
* +1 Practical exploit chain: the supplied description connects spoofed or misrouted frames to concrete effects on AF_IUCV sockets, not just theoretical misclassification.
Paranoid additional signal:
* +1 Additional independent exposure path: peers on the same HiperSockets segment can spoof AF_IUCV frame types because the protocol has no per-connection authentication and the fix only narrows matching to the correct ingress device.
Non-awarded signals:
* RealUAF not awarded: no post-free object use is established.
* Memory corruption not awarded: the patch fixes socket selection and origin validation, not heap corruption, OOB access, or refcount misuse.
* Controlled reclaim, arbitrary write, and kernel LPE not demonstrated.
* Confidentiality not awarded as a main signal: misdelivery and spoofing are concerning, but the supplied evidence mainly establishes injection and DoS rather than a concrete read-back disclosure path.
* Extra availability not awarded beyond the DoS signal.
* Race or timing penalty not applied: this is a logic and boundary-validation flaw, not a hard timing race.
* Rare subsystem penalty not applied: HiperSockets is environment-specific, but the supplied evidence establishes realistic same-segment and namespace-trigger paths.
Repeated release/refcount check:
* First release can end lifetime: no such operation shown.
* Exact same reference survives: not applicable.
* Second lifetime/refcount mutation: not applicable.
* Concrete repeated release/refcount +1: not awarded.
* Paranoid repeated-refcount leverage +1: not awarded.
* FLOOR 5 for repeated release: not applicable.
## 3. Reachability analysis
The issue has two relevant attacker models.
First, a same-segment HiperSockets peer can send spoofed AF_IUCV traffic. This is network-adjacent rather than Internet-routable because the attacker generally needs access to the same HiperSockets segment or VCHID fabric.
Second, the supplied context establishes a local namespace path. AF_IUCV sockets are allocated in `init_net`, while frames from namespace-local devices could still be matched against those sockets. A process in an unprivileged user and network namespace with namespace-local `CAP_NET_RAW` can send a raw `ETH_P_AF_IUCV` frame on its own loopback device and affect `init_net` AF_IUCV sockets.
Host-admin-equivalent privilege is therefore not established as required. `HostAdminRequired=NO` is appropriate from the supplied namespace-trigger evidence. `NamespaceScopedPrivilege=YES` is also appropriate because the supplied description states the complete relevant operation can be performed with namespace-local `CAP_NET_RAW`.
Prior privileged setup may exist in real deployments because AF_IUCV and HiperSockets must be present and configured, but the vulnerability itself is not described as requiring the attacker to be host administrator once the affected environment exists.
## 4. Primitive and severity interpretation
The exact primitive is an origin-validation and socket-selection failure. The receive path selected AF_IUCV sockets by transport-header names alone and failed to bind that decision to the ingress device.
This is not a UAF, not fixed stale storage, and not a repeated lifetime/refcount mutation. It is a concrete security-boundary and namespace/device-isolation bypass because traffic from one device or namespace can be delivered to sockets associated with another device or with `init_net`.
The demonstrated consequences are data injection, attacker-controlled peer identity, accept-queue exhaustion, bogus replies on the IQD fabric, and killing established connections. The speculative consequence would be broader compromise of applications relying on AF_IUCV peer identity or device separation, but kernel privilege escalation is not established by the patch.
`PrimitiveClass=CLASS_A` is used because the bug directly defeats a meaningful device and namespace origin boundary and changes externally visible socket-delivery semantics. `ImportantCandidate=YES` follows from the concrete boundary bypass and injection impact. `AutoDowngradeAllowed=NO` because automatic closure would discard a real cross-device and cross-namespace security primitive with network-adjacent exposure.
Likely operational severity is high for affected s390x HiperSockets or AF_IUCV deployments, especially multi-tenant or namespace-heavy environments.
## 5. One-sentence report phrase
AF_IUCV HiperSockets receive handling failed to verify the ingress device before socket matching, allowing same-segment or namespace-local forged frames to reach the wrong socket and cause data injection, peer spoofing, connection disruption, or DoS.
## 6. Manual review recommendation
MANUAL CHECK REQUIRED
Reason: this is a concrete network-adjacent and namespace-reachable security-boundary bypass with data injection and DoS impact, even though no kernel memory corruption or LPE primitive is established.
## 7. Call-site confidence
Call-site confidence: high
======================================================================
UPSTREAM PATCH SUMMARY
======================================================================
Patch: net/iucv: filter frames in afiucv_hs_rcv() by ingress device
Commit: dfac2936b83be00035ae176f8252e1c1e1de9207
Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=dfac2936b83be00035ae176f8252e1c1e1de9207
Commit description:
afiucv_hs_rcv() selects a socket from iucv_sk_list by matching four 8-byte
name fields in the transport header alone. No check is made against the
net_device the frame arrived on.
This can cause a frame arriving on any netdev to be delivered to an AF_IUCV
socket. Three problems follow.
First, a frame arriving over HiperSockets can be delivered to a socket
bound to the classic z/VM IUCV transport, which has iucv->hs_dev == NULL.
iucv_sock_bind() takes the classic path whenever the requested userid
matches iucv_userid, even on a guest that also has a HiperSockets device
carrying the same identifier. The child socket created by
afiucv_hs_callback_syn() for such a match inherits hs_dev = NULL and
transport = AF_IUCV_TRANS_HIPER, so the first send() on it returns -ENODEV.
The socket delivered to accept() is unusable.
Second, a frame arriving on one netdev can be delivered to a socket bound
to a different IQD device. Which can lead to
- Accept-queue exhaustion (DoS)
- Attacker-controlled peer identity in the child socket
- Data injection into existing sockets
- Fabric noise on the IQD fabric, where bogus replies are sent
- killing established connections
Third, all AF_IUCV sockets live in init_net, as iucv_sock_alloc() calls
sk_alloc(&init_net, ...). But even frames arriving on netdev devices in a
namespace can be delivered to an IUCV socket. So a process in an
unprivileged user and network namespace holding only the CAP_NET_RAW
capability valid within that namespace can send a raw ETH_P_AF_IUCV frame
on its own lo device and have it matched against init_net sockets.
Fix all three by skipping any socket whose hs_dev does not match the
ingress device. A classic z/VM IUCV socket has hs_dev == NULL; the ingress
dev is never NULL, so classic sockets are skipped automatically. An unbound
HIPER socket also has hs_dev == NULL and is skipped. A bound HIPER socket
is only reachable from the exact IQD device it was bound to. Because hs_dev
is always a device in init_net (iucv_sock_bind() scans
for_each_netdev_rcu(&init_net, ...) exclusively), a frame whose ingress
device belongs to another namespace never matches any socket.
Note that AF_IUCV over HiperSockets provides no per-connection
authentication: no sequence numbers, no TLS, no nonce. The four name fields
identifying a connection are exchanged in plaintext on the shared
HiperSockets segment (VCHID). Any host on the same HiperSockets segment
could spoof any frame type against an existing connection. That is a
protocol-level property unchanged by this patch. The fix reduces the attack
surface to peers present on the same HiperSockets segment.
Fixes: 3881ac4 ("af_iucv: add HiperSockets transport")
Cc: [email protected]
Co-developed-by: Bryam Vargas <[email protected]>
Signed-off-by: Alexandra Winter <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Changed files:
net/iucv/af_iucv.c
Diff excerpt:
Not included in this email. See the upstream URL for the full patch.
Full patch:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=dfac2936b83be00035ae176f8252e1c1e1de9207
======================================================================
DETAILED REPORT METHODOLOGY
======================================================================
The original Linux kernel CVE announcement for CVE-2026-81003 can be found here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-81003
The original CVE announcement normally does not include a security-level
estimate. In particular, it may not contain a CVSS assessment, an impact
level, or enough information to determine whether the reported bug is a
practically relevant security issue. One purpose of this parallel CVE list
is to provide that missing technical and prioritization information.
The original goal of the AL-KERNEL project was to prioritize Linux kernel
CVE analysis automatically before manual review. The system can also help
identify non-security issues that may be suitable for automatic closure.
This report was generated by AL-KERNEL, an AI-assisted Linux kernel
vulnerability analysis system developed by Alexander Larkin.
The first analysis stage combines an autonomous classifier with additional
LLM-based analysis. The autonomous classifier runs locally on a CPU and is
based on a backpropagation neural network. Together, these mechanisms
produce a technical vulnerability description, identify likely weakness
types, estimate CVSS severity, and provide input for ActionableScore.
Two CVSS estimates are retained because incomplete kernel vulnerability
information often permits more than one defensible interpretation:
Conservative CVSS vector: AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
The Best / paranoid CVSS vector: AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H
The Best / paranoid CVSS score: 8.3
The conservative vector represents a lower-impact interpretation.
The Best/paranoid vector intentionally represents a plausible upper-bound
interpretation and should not automatically be treated as demonstrated
real-world impact.
CVSS may also need to be adjusted for a particular Linux deployment,
because actual reachability, privileges, enabled kernel configuration,
hardware, namespaces, exposed device nodes, and other environmental
conditions can differ significantly between systems.
A separate ActionableScore mechanism evaluates practical remediation
urgency. Its analysis may include reachability, attack prerequisites,
subsystem exposure, memory-corruption characteristics, denial-of-service
reliability, and possible confidentiality, integrity, or
privilege-escalation impact.
Conservative ActionableScore: 6
Paranoid ActionableScore: 7
The final base severity is taken directly from the second tab-separated
field of the AL-KERNEL classification result. ActionableScore does not
replace or independently override that final AL-KERNEL decision, and
if ActionableScore adjusted impact level of ALKERNEL, then you would see
self-readable flags above like INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHEREQTHAN7.
For an AL-KERNEL result of MODERATE, this report uses the following
additional presentation split:
ActionableScore below 5 -> MODERATE REGULAR
ActionableScore 5 or more -> MODERATE 7.0
The distinction between MODERATE REGULAR and MODERATE 7.0 makes it
possible to identify Moderate issues that should receive manual analysis
and fixes before lower-priority MODERATE REGULAR issues. In many cases,
MODERATE REGULAR fixes may wait for a later rebase or routine update.
There is one override in which MODERATE REGULAR becomes MODERATE 7.0
even when the ActionableScore is below 5. When the AL-KERNEL result
contains the KPANIC flag, a MODERATE result is always presented as
MODERATE 7.0. The KPANIC flag selected with few regexps without
usage of AI at all, so it helps to detect cases when Kernel Crash happens
and similar (to filter False-Negative results from the LLM usage).
KPANIC indicates that a reliable kernel crash, kernel panic, or similarly
serious kernel availability impact was identified by the classification
workflow.
AL-KERNEL base severity for this report: IMPORTANT
KPANIC detected for this report: YES
Published priority for this report (same as in Subject): IMPORTANT
These results are intended to support engineering triage. They are
machine-generated estimates, and cases marked for manual review should
be validated by a human security engineer before final disposition.
For more info read docs linked from here: https://kernelcve.org/
(and you can submit you own patch there to generate such a report
for non-existant CVE-id yet).
Note that in many cases this AI tool selects higher severity, than
real is (means you can expect Importants instead of Moderate 7.0 or
Moderates 7.0 instead of regular Moderates). If you see such cases,
please use reply email interface to add additional manual analyses
info to this particular CVE.
And please, please, let me know when you see Lows instead of Importants
or Important instead of Low (because particular for such cases I
need to tune this AI tool to make it better for this one and next similar).
My contact email for such notifications is [email protected] (and both
send reply to CVE record itself too and see "reply" button below for howto reply).
reply other threads:[~2026-09-11 22:41 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --from, and --in-reply-to
switches of git-send-email(1) and next cmd tested by kernelcve.org admin:
git send-email --smtp-server=mail.kernelcve.org --smtp-server-port=25 --smtp-auth=none --from='Your Name <youremail@domain.is>' --suppress-cc=all --no-cc \
--in-reply-to=cve-2026-81003.f8322d40f21d86151130d454@kernelcve.org \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
The file with msg could look like this then:
cat YOUR_REPLY
Subject: Re: [CVE-2026-64206][MODERATE REGULAR] Bluetooth: L2CAP test
Just testing public-inbox replies.
Thanks,
MyName
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox