From mboxrd@z Thu Jan 1 00:00:00 1970 From: AL-KERNEL To: kernel-cve@kernelcve.org 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 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-AL-KERNEL-CVE: CVE-2026-81003 X-AL-KERNEL-Priority: IMPORTANT X-AL-KERNEL-Severity: IMPORTANT X-AL-KERNEL-Base-Severity: IMPORTANT X-AL-KERNEL-KPANIC: YES X-AL-KERNEL-ActionableScore: 7 X-AL-KERNEL-ActionableScore-Lower: 6 X-AL-KERNEL-Commit: dfac2936b83be00035ae176f8252e1c1e1de9207 List-Id: 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: stable@vger.kernel.org Co-developed-by: Bryam Vargas Signed-off-by: Alexandra Winter Link: https://patch.msgid.link/20260821125501.3718748-1-wintera@linux.ibm.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman 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 alexanjelausa@gmail.com (and both send reply to CVE record itself too and see "reply" button below for howto reply).