From: AL-KERNEL <[email protected]>
To: [email protected]
Subject: [CVE-2026-89456][MODERATE 7.0] s390/dasd: Propagate partial completion length across ERP recovery
Date: Sat, 12 Sep 2026 00:57:42 -0400 [thread overview]
Message-ID: <[email protected]> (raw)
CVE: CVE-2026-89456
Priority: MODERATE 7.0
AL-KERNEL base severity: MODERATE
KPANIC flag: YES
Patch: s390/dasd: Propagate partial completion length across ERP recovery
Commit: d6b8778b1b82aa3a8dbf8612080f635b834bd16b
Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d6b8778b1b82aa3a8dbf8612080f635b834bd16b
Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-89456
Analysis date: Sat, 12 Sep 2026 00:57:42 -0400
ActionableScore: 5
ActionableScore lower bound: 4
Actionable bucket: Actionable Moderate
Manual review required: YES
Summary:
No one-sentence report phrase was found.
======================================================================
ABOUT THIS REPORT
======================================================================
The original Linux kernel CVE announcement for CVE-2026-89456 is available here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-89456
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: MODERATE 7.0
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-89456 MODERATE https://www.kernelcve.org/list/?q=CVE-2026-89456 CHECK WITH IMPACT FROM ORIG NN MODERATE Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:H';CWE-703;CWE-682;*CWE-664;Other CVSS 'AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L';BEST CVSS score: '6.3';DESCR 'A partial completion handling bug in s390/DASD ERP recovery can lose the proc_bytes value when an ERP request is copied back to the original request. If an ESE read of a not yet allocated track completes only part of the requested range and then goes through ERP recovery, __dasd_cleanup_cqr may see proc_bytes as 0 and complete the full request instead of requeuing the unread remainder. This can silently return zero filled data for bytes that were never actually read, causing storage data integrity impact rather than memory corruption. For the CVSS the PR:L is used because a local user or process able to issue reads through an affected filesystem or block device may trigger the faulty I/O path, although reliable reproduction depends on s390 DASD thin provisioned ESE storage and ERP recovery conditions. The issue is not network reachable. Impact is silent data corruption with possible availability effects if applications consume corrupted reads or fail on inconsistent data.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Actionable Moderate (with actual score 5) YES DANGER SIMPLEFIX HARDWARE KPANIC NO NO checked
======================================================================
ACTIONABLESCORE ANALYSIS
======================================================================
ActionableScore=5
ActionableScoreLower=4
PrimitiveClass=CLASS_C
RealUAF=NO
HostAdminRequired=NO
NamespaceScopedPrivilege=NO
ImportantCandidate=NO
ManualReview=REQUIRED
AutoDowngradeAllowed=NO
1. ActionableScore
* Raw conservative score: 4
* Conservative score: 4
* Raw paranoid score: 5
* Paranoid score: 5
* No floor or cap changed the score.
* Final recommended bucket: **Actionable Moderate**::
2. Signal breakdown
Conservative positive signals:
* +1 Local below-host-admin trigger. A local user or process that can issue reads through an affected filesystem or block device can reach the faulty I/O path after the affected storage is already deployed.
* +1 Important storage path. The bug is in s390 DASD ERP recovery and affects block I/O completion semantics.
* +1 Silent storage data integrity defect. The request can be completed as if fully read even though part of the data was never read.
* +1 Integrity plausible. The kernel may return zero-filled data for unread bytes, causing silent data corruption at the storage/application level.
Paranoid additional signal:
* +1 Availability plausible. If applications consume the corrupted read result or depend on storage consistency, the issue can cause operational failure beyond a single incorrect read.
Negative signals:
* 0 No host-admin penalty. Host-admin is needed to configure many storage deployments, but the runtime trigger can be ordinary I/O once the affected DASD/ESE setup exists.
* 0 No rare-hardware penalty applied. The issue is architecture and storage specific, but the supplied evidence does not justify treating attacker reachability inside an affected deployment as physical-only or impossible.
* 0 No race/timing penalty. The bug is an ordered state propagation bug across ERP recovery, not a narrow race.
Important non-awarded signals:
* No RealUAF. No stale pointer, freed object, double free, or lifetime/refcount mutation is established.
* No controlled reclaim or arbitrary write is demonstrated.
* No confidentiality impact is awarded because there is no disclosure path.
* No privilege escalation is awarded because the primitive is silent read-result corruption, not kernel memory corruption or authorization bypass.
* No remote reachability is established.
* No filesystem ownership/COW boundary bypass is established. The evidence shows wrong data returned for the same I/O request, not attacker-authorized writes modifying another protected object.
3. Reachability analysis
The plausible attacker is a local user or local process that can cause reads through the affected filesystem or block device. The complete issue depends on an affected s390 DASD environment, thin-provisioned ESE behavior, a partial read of a not-yet-allocated track, and ERP recovery. Those are deployment and state prerequisites, but they do not by themselves prove that host-admin privilege is required for the runtime read trigger.
Namespace-scoped privilege is not relevant here. There is no network trigger. There is no evidence that the attacker can instantiate the storage setup without prior administrative provisioning, but prior provisioning of a storage device is normal environmental context rather than proof that exploitation of the runtime I/O path requires host-admin.
Race repeatability is not the main issue. The bug is that `proc_bytes` is lost when ERP request state is copied back to the original request.
4. Primitive and severity interpretation
The exact primitive is a storage I/O completion semantic error. `dasd_default_erp_postaction()` preserved timing and device state from the completed ERP request but dropped `proc_bytes`. If the request was only partially completed, `__dasd_cleanup_cqr()` could later observe `proc_bytes == 0` and complete the entire request instead of requeueing the unread remainder.
This is not an active structured UAF and not fixed stale storage. It is also not cleanup-only memory corruption. It is a block-layer data integrity flaw where incorrect request accounting can silently return zero-filled data for bytes that were never read.
PrimitiveClass is CLASS_C because the demonstrated behavior is invalid request-completion state with storage integrity impact, not a kernel memory corruption, lifetime, ownership/COW, or authorization primitive. ImportantCandidate is NO because no Important-grade memory corruption, LPE, authorization bypass, or cross-object ownership violation is established. AutoDowngradeAllowed is NO because silent storage data corruption is actionable and should not be automatically closed as an ordinary low-risk bug.
Likely operational severity is Actionable Moderate. It deserves manual review because storage integrity issues can be business-critical even without kernel memory corruption.
5. One-sentence report phrase
A partial-completion accounting bug in s390 DASD ERP recovery can lose `proc_bytes`, causing unread parts of a recovered read request to be completed as zero-filled data and resulting in silent storage data corruption.
6. Manual review recommendation
MANUAL CHECK REQUIRED
Reason: silent storage data corruption in a block I/O recovery path can have high integrity impact in affected s390 DASD/ESE deployments even though no memory corruption or privilege escalation primitive is established.
7. Call-site confidence
Call-site confidence: medium
======================================================================
UPSTREAM PATCH SUMMARY
======================================================================
Patch: s390/dasd: Propagate partial completion length across ERP recovery
Commit: d6b8778b1b82aa3a8dbf8612080f635b834bd16b
Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d6b8778b1b82aa3a8dbf8612080f635b834bd16b
Commit description:
dasd_default_erp_postaction() copies the timing and device state from
the finished ERP request back to the original request but drops
proc_bytes. A request that was partially completed, an ESE read of a
not-yet-allocated track returns fewer bytes than requested, and then
recovered through the ERP chain loses its partial-completion length.
__dasd_cleanup_cqr() then sees proc_bytes == 0 and completes the whole
request instead of requeueing the remainder, silently returning zeroed
data for the part that was never read.
Carry proc_bytes over to the original request like the other
per-request state.
Fixes: 5e6bdd3 ("s390/dasd: fix data corruption for thin provisioned devices")
Cc: [email protected]
Reviewed-by: Jan Höppner <[email protected]>
Signed-off-by: Stefan Haberland <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jens Axboe <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Changed files:
drivers/s390/block/dasd_erp.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=d6b8778b1b82aa3a8dbf8612080f635b834bd16b
======================================================================
DETAILED REPORT METHODOLOGY
======================================================================
The original Linux kernel CVE announcement for CVE-2026-89456 can be found here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-89456
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:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:L
The Best / paranoid CVSS vector: AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:H
The Best / paranoid CVSS score: 6.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: 4
Paranoid ActionableScore: 5
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: MODERATE
KPANIC detected for this report: YES
Published priority for this report (same as in Subject): MODERATE 7.0
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-12 4:57 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-89456.fc7696da61a2606b489b4f0b@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