CVE-2026-68478

memstick: ms_block: reject a card that reports too many blocks

State
Published
Severity
Not scored
Published
Aug 15, 2026
Updated
Aug 17, 2026
Reserved
Jul 30, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

memstick: ms_block: reject a card that reports too many blocks

msb_ftl_initialize() computes the zone count from the card block count with no bound:

msb->zone_count = msb->block_count / MS_BLOCKS_IN_ZONE; ... for (i = 0; i < msb->zone_count; i++) msb->free_block_count[i] = MS_BLOCKS_IN_ZONE;

msb->block_count is a card value. msb_read_boot_blocks() reads number_of_blocks from the card boot page and byte swaps it. free_block_count is a fixed int[MS_MAX_ZONES]. MS_MAX_ZONES is 16, so the valid indices are 0 to 15. The init loop above indexes it by zone_count. msb_mark_block_used() and msb_mark_block_unused() index it by pba / MS_BLOCKS_IN_ZONE, for pba up to block_count - 1. A card may report up to 65535 blocks. A block_count above 8192 (MS_MAX_ZONES * MS_BLOCKS_IN_ZONE) lets the pba index reach 16. That writes past free_block_count[] and corrupts struct msb_data. A larger count runs the init loop past the end too.

A real Memory Stick has at most 16 zones. So it has at most 8192 blocks. msb_ftl_initialize() now rejects a card that reports more than MS_MAX_ZONES * MS_BLOCKS_IN_ZONE blocks.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before a4b9961efe8640f50800811b4a2b2046b3dc2cccAffected
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before 8937b11f1c3896e066c3fb07387ba17bc8c50b8aAffected
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before f1c675ecf6e5ad02722f0019f729d8bb588d502eAffected
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before d5db3439ee8d1c165a09a47e984c4ba508c130dfAffected
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before b86666ac4009a252501cc17242582a7ec9ed976eAffected
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before 39151f0708c84221e94cdd6aa070aba5d7cb1c01Affected
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before 47f0c7d856c67c9935546d2644f18c0d0131b449Affected
  • 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 to before 718178f524b98bc920d74bc771aed823c8b81425Affected
LinuxLinux
  • 3.12Affected
  • before 3.12Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.97 through 6.12.*Not affected
  • 6.18.40 through 6.18.*Not affected
  • 7.1.5 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.