* [CVE-2026-63876][LOW] serial: zs: Convert to use a platform device
@ 2026-07-19 15:59 AL-KERNEL
0 siblings, 0 replies; only message in thread
From: AL-KERNEL @ 2026-07-19 15:59 UTC (permalink / raw)
To: kernel-cve
CVE: CVE-2026-63876
Priority: LOW
AL-KERNEL base severity: LOW
KPANIC flag: NO
Patch: serial: zs: Convert to use a platform device
Commit: bb2040484f90f91b717060e1a66026cc4287bcf0
Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=bb2040484f90f91b717060e1a66026cc4287bcf0
Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-63876
Analysis date: Sun, 19 Jul 2026 11:59:51 -0400
ActionableScore: 0
ActionableScore lower bound: unknown
Actionable bucket: Ordinary Moderate / Low-like
Manual review required: NO
Summary:
No one-sentence report phrase was found.
======================================================================
ABOUT THIS REPORT
======================================================================
The original Linux kernel CVE announcement for CVE-2026-63876 is available here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-63876
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: LOW
Manual review required: NO
A detailed explanation of the methodology and priority rules is included
at the end of this message.
======================================================================
AL-KERNEL CLASSIFICATION RESULT
======================================================================
CVE-2026-63876 LOW CHECK WITH IMPACT FROM ORIG NN LOW Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H';**CWE-476;CWE-665;CWE-703;BEST CVSS score: '4.4';DESCR 'A NULL pointer dereference can occur during DECstation Z85C30 serial driver initialization because the legacy probed UART port has no valid parent device. The serial core path can then dereference a pointer derived from a NULL port device while the first serial port is registered, causing a kernel oops during boot or driver initialization. For the CVSS the PR:H is selected because reliable triggering normally requires administrative control over kernel configuration, driver loading, or booting the affected MIPS DECstation platform. The issue is not network reachable and is not triggered by packet traffic or a remote protocol. Impact is denial of service through boot failure or kernel crash only. There is no evidence of UAF, OOB access, information disclosure, or privilege escalation from the code path.';NO MANUAL CHECK; ,and ActionableScore result is Ordinary Moderate / Low-like (with actual score 0) SKIP CVE-2026-63876 UNKNOWN SKIP No affected files built, so skip this CVE NO - - unknown MAYBE OOB LOCK DANGER INIT DMAorINTERRUPT KERNEL_PANIC_PLUS_UAF HARDWARE LINUS DECREASED_TO_MODERATE_REGULAR_FROM_MODERATE7_BASED_ON_GUESSCVSS DECREASED_TO_LOW_FROM_MODERATE_BASED_ON_ACTIONABLESCORELESSTHAN3 - - checked
======================================================================
ACTIONABLESCORE ANALYSIS
======================================================================
ActionableScore=0
1. ActionableScore
* Conservative score: 0
* Paranoid score: 0
* Final recommended bucket: **Ordinary Moderate / Low-like**::
2. Signal breakdown
* Reliable kernel crash / strong DoS: +1. The patch fixes a reproducible NULL pointer dereference during zs serial initialization.
* Availability impact realistic: +1. On the affected platform this can prevent boot or cause an early kernel oops.
* Requires admin/root/CAP_* in typical deployments: -2. Reliable triggering requires booting/configuring the affected kernel and hardware or controlling driver initialization.
* Physical-only or rare hardware-only condition: -2. This is specific to DECstation Z85C30 serial hardware on MIPS DEC systems.
* Rare AND difficult-to-reach subsystem/configuration: -1. The affected path is a legacy architecture-specific serial driver initialization path.
* No memory corruption bonus. The primitive is a NULL pointer dereference, not UAF, OOB write, double free, type confusion, or attacker-controlled overwrite.
* No LPE, confidentiality, or integrity signal. The patch context supports DoS only.
3. Reachability analysis
The bug is triggered during boot or serial driver initialization on affected DECstation systems. It is not reachable from the network, from packet processing, or from an ordinary local unprivileged interface. Namespaces and containers do not materially reduce the privilege requirement because the relevant action is kernel boot or platform driver initialization. The path is not broadly deployed and depends on rare legacy MIPS hardware.
4. Severity interpretation
This behaves like a low-priority availability/stability issue rather than an actionable Moderate or Important kernel vulnerability. The theoretical failure mode is a kernel crash from NULL dereference, but there is no realistic evidence of memory corruption, privilege escalation, information disclosure, or cross-boundary impact. The issue should not be treated as Important-class.
5. One-sentence report phrase
A DECstation Z85C30 serial driver initialization bug can dereference a NULL parent device pointer and crash the kernel during boot on rare MIPS DECstation hardware, with no network reachability or privilege escalation evidence.
6. Manual review recommendation
NO MANUAL CHECK NEEDED. This is an architecture-specific boot-time NULL dereference with administrator-level triggering requirements and DoS-only impact, so it can be auto-closed for urgent security triage.
======================================================================
UPSTREAM PATCH SUMMARY
======================================================================
Patch: serial: zs: Convert to use a platform device
Commit: bb2040484f90f91b717060e1a66026cc4287bcf0
Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=bb2040484f90f91b717060e1a66026cc4287bcf0
Commit description:
Prevent a crash from happening as the first serial port is initialised:
Console: switching to mono frame buffer device 160x64
fb0: PMAG-AA frame buffer device at tc0
DECstation Z85C30 serial driver version 0.10
CPU 0 Unable to handle kernel paging request at virtual address 0000002c, epc == 803ab00c, ra == 803aafe0
Oops[#1]:
CPU: 0 PID: 1 Comm: swapper Not tainted 6.4.0-rc3-00031-g84a9582fd203-dirty #57
$ 0 : 00000000 10012c00 803aaeb0 00000000
$ 4 : 80e12f60 80e12f50 80e12f58 81000030
$ 8 : 00000000 805ff37c 00000000 33433538
$12 : 65732030 00000006 80c2915d 6c616972
$16 : 80e12f00 807b7630 00000000 00000000
$20 : 00000004 00000348 000001a0 807623b8
$24 : 00000018 00000000
$28 : 80c24000 80c25d60 8078b148 803aafe0
Hi : 00000000
Lo : 00000000
epc : 803ab00c serial_base_ctrl_add+0x78/0xf4
ra : 803aafe0 serial_base_ctrl_add+0x4c/0xf4
Status: 10012c03 KERNEL EXL IE
Cause : 00000008 (ExcCode 02)
BadVA : 0000002c
PrId : 00000440 (R4400SC)
Modules linked in:
Process swapper (pid: 1, threadinfo=(ptrval), task=(ptrval), tls=00000000)
Stack : 80760000 00000cc0 00400044 00400040 803aa02c 80d61ab8 00000000 807b7630
80760000 807623b8 807b7628 803aa644 80386998 00000000 80e17780 80220f68
80e17780 80d61ab8 80c17d80 80e17780 80e17780 8063c798 80e17780 80383fa0
00000010 80e17780 00000000 80386998 807a0000 00000000 00400040 8038f848
807623b8 80d61ab8 00000004 80e17780 00000000 803a68e4 80c25e2c 803bb884
...
Call Trace:
[<803ab00c>] serial_base_ctrl_add+0x78/0xf4
[<803aa644>] serial_core_register_port+0x174/0x69c
[<8077e9ac>] zs_init+0xc8/0xfc
[<800404d4>] do_one_initcall+0x40/0x2ac
[<8076cecc>] kernel_init_freeable+0x1e4/0x270
[<80605bec>] kernel_init+0x20/0x108
[<800431e8>] ret_from_kernel_thread+0x14/0x1c
Code: 2442aeb0 ae120024 ae0200d0 <8c67002c> 50e00001 8c670000 3c06806 3c05806e afb30010
---[ end trace 0000000000000000 ]---
(report at the offending commit) -- where a pointer is dereferenced that
has been derived from a null pointer to the port's parent device.
Since no device is available with legacy probing and it's not anymore a
preferable way to discover devices anyway, switch the driver to using a
platform device and use it as the port's parent device. Update resource
handling accordingly and only request the actual span of addresses used
within the slot, which will have had its resource already requested by
generic platform device code.
Use platform_driver_probe() not just because SCC devices are fixed with
solder on board and not straightforward to remove, but foremost because
the associated TTY's major device number is the same as used by the dz
driver and the first driver to claim it will prevent the other one from
using it. Either one DZ device or some SCC devices will be present in a
given system but never both at a time, and therefore we want the major
device number to be claimed by the first driver to actually successfully
bind to its device and platform_driver_probe() is a way to fulfil that.
An unfortunate consequence of the switch to a platform device is we now
hand the console over from the bootconsole much later in the bootstrap.
The firmware console handler appears good enough though to work so late
and in particular with interrupts enabled.
Since there is one way only remaining to reach zs_reset() now, remove
the port initialisation marker as no longer needed and go through the
channel reset unconditionally.
Fixes: 84a9582 ("serial: core: Start managing serial controllers to enable runtime PM")
Signed-off-by: Maciej W. Rozycki <[email protected]>
Cc: [email protected] # needs to use .remove_new for <= 6.10
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Changed files:
arch/mips/dec/platform.c
drivers/tty/serial/zs.c
drivers/tty/serial/zs.h
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=bb2040484f90f91b717060e1a66026cc4287bcf0
======================================================================
DETAILED REPORT METHODOLOGY
======================================================================
The original Linux kernel CVE announcement for CVE-2026-63876 can be found here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-63876
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: Not available
The Best / paranoid CVSS vector: AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
The Best / paranoid CVSS score: 4.4
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: unknown
Paranoid ActionableScore: 0
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: LOW
KPANIC detected for this report: NO
Published priority for this report (same as in Subject): LOW
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).
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-19 15:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-19 15:59 [CVE-2026-63876][LOW] serial: zs: Convert to use a platform device AL-KERNEL
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox