LiveActive security incident?Get immediate response
CVE Record

CVE-2025-22003: can: ucan: fix out of bound read in strscpy() source

In the Linux kernel, the following vulnerability has been resolved: can: ucan: fix out of bound read in strscpy() source Commit 7fdaf8966aae ("can: ucan: use strscpy() to instead of strncpy()") unintentionally introduced a one byte out of bound read on strscpy()'s source argument (which is kind of ironic knowing that strscpy() is meant to be a more secure alternative :)). Let's consider below buffers: dest[len + 1]; /* will be NUL terminated */ src[len]; /* may not be NUL terminated */ When doing: strncpy(dest, src, len); dest[len] = '\0'; strncpy() will read up to len bytes from src. On the other hand: strscpy(dest, src, len + 1); will read up to len + 1 bytes from src, that is to say, an out of bound read of one byte will occur on src if it is not NUL terminated. Note that the src[len] byte is never copied, but strscpy() still needs to read it to check whether a truncation occurred or not. This exact pattern happened in ucan. The root cause is that the source is not NUL terminated. Instead of doing a copy in a local buffer, directly NUL terminate it as soon as usb_control_msg() returns. With this, the local firmware_str[] variable can be removed. On top of this do a couple refactors: - ucan_ctl_payload->raw is only used for the firmware string, so rename it to ucan_ctl_payload->fw_str and change its type from u8 to char. - ucan_device_request_in() is only used to retrieve the firmware string, so rename it to ucan_get_fw_str() and refactor it to make it directly handle all the string termination logic.

MediumCVSS 5.5Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2025-22003 is a Linux kernel flaw in the ucan CAN driver. A string-copy change caused a one-byte out-of-bounds read when handling a firmware string. The published impact is mainly availability, not data theft. It requires local access with low privileges, so urgency is higher for shared systems or environments using this driver.

Executive priority

Treat as a moderate-priority kernel maintenance item. It is not currently supported by evidence of active exploitation, but kernel availability impact can matter on shared, embedded, industrial, or hardware-connected Linux systems.

Technical view

The issue is CWE-125 in the Linux kernel ucan driver. strscpy() could read one byte past a non-NUL-terminated source returned through usb_control_msg(). The kernel fix NUL-terminates the firmware string immediately after the USB control response and refactors related ucan firmware-string handling. CVSS is 5.5, AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H.

Likely exposure

Exposure is likely limited to Linux systems running affected kernels with the ucan CAN driver present or in use. The CVE data lists Linux kernel versions/branches and stable kernel fix references, but exact distribution package impact must be confirmed with each vendor.

Exploitation context

The provided sources do not show active exploitation, and the CVE is not marked KEV. The CVSS vector indicates local access, low attack complexity, low privileges, and no user interaction, with high availability impact. No confidentiality or integrity impact is listed.

Researcher notes

Evidence is limited to the CVE record and Linux stable commits. The root cause is a strncpy-to-strscpy conversion where the source buffer may lack NUL termination. The fix changes ucan firmware-string handling, not a broad strscpy issue.

Mitigation direction

  • Apply Linux kernel updates that include the referenced stable ucan fixes.
  • Check distribution advisories for exact fixed kernel packages.
  • Prioritize shared systems and hosts using ucan-supported CAN hardware.
  • If patching is delayed, limit untrusted local access and untrusted USB CAN device exposure.

Validation and detection

  • Inventory Linux kernel versions across affected systems.
  • Determine whether the ucan CAN driver is enabled, loaded, or required.
  • Compare installed kernels with vendor advisories and referenced stable commits.
  • Verify patched kernels include the ucan firmware-string termination fix.
  • Monitor vendor errata for corrected affected-version mapping.
Prepared
Confidence
high
Sources
6

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-125: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2025-22003 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
5.5 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
5Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
5.5CVSS 3.1MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H1.83.6CISA-ADP

Vulnerability scoring details

Base CVSS 3.1 score

5.5Medium
CVSS 3.1 vector shape for CVE-2025-22003Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
cvssV3_1other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux7fdaf8966aae476deafe11f9a0067ff588615444, 7fdaf8966aae476deafe11f9a0067ff588615444, 7fdaf8966aae476deafe11f9a0067ff588615444, 7fdaf8966aae476deafe11f9a0067ff588615444unaffected
LinuxLinux6.2, 0, 6.6.85, 6.12.21, 6.13.9, 6.14affected
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-125 · source CWE mapping

Out-of-bounds Read

Out-of-bounds Read represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.