CVE-2025-39716

Summary

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

parisc: Revise __get_user() to probe user read access

Because of the way read access support is implemented, read access interruptions are only triggered at privilege levels 2 and 3. The kernel executes at privilege level 0, so __get_user() never triggers a read access interruption (code 26). Thus, it is currently possible for user code to access a read protected address via a system call.

Fix this by probing read access rights at privilege level 3 (PRIV_USER) and setting __gu_err to -EFAULT (-14) if access isn't allowed.

Note the cmpiclr instruction does a 32-bit compare because COND macro doesn't work inside asm.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 28a9b71671fb4a2993ef85b8ef6f117ea63894feaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 4c981077255acc2ed5b3df6e8dd0125c81b626a9affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f410ef9a032caf98117256b22139c31342d7bb06affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 741b163e440683195b8fd4fc8495fcd0105c6ab7affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 89f686a0fb6e473a876a9a60a13aec67a62b9a7eaffected
LinuxLinux2.6.12affected
LinuxLinux0 < 2.6.12unaffected
LinuxLinux6.1.149 <= 6.1.*unaffected
LinuxLinux6.6.103 <= 6.6.*unaffected
LinuxLinux6.12.44 <= 6.12.*unaffected
LinuxLinux6.16.4 <= 6.16.*unaffected
LinuxLinux6.17 <= *unaffected

Weaknesses

ADP Enrichment

CVE Program Container

Additional References

Additional References

References