{"id":"CVE-2026-35462","summary":"Papra Does Not Reject Expired API Keys","details":"Papra is a minimalistic document management and archiving platform. Prior to 26.4.0, API keys with an expiresAt date are never validated against the current time during authentication. Any API key — regardless of its expiration date — is accepted indefinitely, allowing a user whose key has expired to continue accessing all protected endpoints as if the key were still valid. This vulnerability is fixed in 26.4.0.","aliases":["GHSA-866c-mc22-wvv5"],"modified":"2026-07-08T08:12:58.278008062Z","published":"2026-04-07T14:30:17.479Z","database_specific":{"cwe_ids":["CWE-613"],"cna_assigner":"GitHub_M","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35462.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/35xxx/CVE-2026-35462.json"},{"type":"ADVISORY","url":"https://github.com/papra-hq/papra/security/advisories/GHSA-866c-mc22-wvv5"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35462"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/papra-hq/papra","events":[{"introduced":"0"},{"fixed":"b29396a1973ef0d02db00b9e685073d7a9dc6e62"}],"database_specific":{"source":["AFFECTED_FIELD","CPE_RANGE"],"extracted_events":[{"introduced":"0"},{"fixed":"26.4.0"}],"cpe":"cpe:2.3:a:papra:papra:*:*:*:*:*:*:*:*"}}],"versions":["@papra/search-parser@0.1.1","@papra/lecture@0.5.0","@papra/app@26.3.0","@papra/app@26.2.2","@papra/app@26.2.1","@papra/app@26.2.0","@papra/website@0.0.0","@papra/app@26.1.0","@papra/search-parser-demo@0.0.0","@papra/mobile@1.0.0","@papra/docker@26.0.0","@papra/webhooks@0.3.2","@papra/cli@0.2.2","@papra/api-sdk@1.1.3","@papra/docker@25.12.0","@papra/cli@0.2.1","mobile@1.0.0","@papra/lecture@0.4.0","@papra/docker@25.11.0","@papra/cli@0.2.0","@papra/api-sdk@1.1.2","@papra/webhooks@0.3.1","@papra/lecture@0.3.1","@papra/docker@25.10.2","@papra/cli@0.1.2","@papra/api-sdk@1.1.1","@papra/docker@25.10.1","@papra/docker@25.10.0","@papra/app-server@0.0.0","@papra/app-client@0.0.0","@papra/app-server@0.9.6","@papra/app-client@0.9.6","@papra/app-server@0.9.5","@papra/app-client@0.9.5","@papra/docs@0.6.1","@papra/app-server@0.9.4","@papra/app-client@0.9.4","@papra/app-server@0.9.3","@papra/app-client@0.9.3","@papra/app-server@0.9.2","@papra/app-client@0.9.2","@papra/app-server@0.9.1","@papra/app-client@0.9.1","@papra/webhooks@0.3.0","@papra/lecture@0.2.0","@papra/docs@0.6.0","@papra/cli@0.1.0","@papra/app-server@0.9.0","@papra/app-client@0.9.0","@papra/api-sdk@1.1.0","@papra/app-server@0.8.2","@papra/app-client@0.8.2","@papra/app-server@0.8.1","@papra/app-client@0.8.1","@papra/webhooks@0.2.0","@papra/lecture@0.1.0","@papra/docs@0.5.3","@papra/app-server@0.8.0","@papra/app-client@0.8.0","@papra/app-server@0.7.0","@papra/app-client@0.7.0","@papra/webhooks@0.1.1","@papra/docs@0.5.2","@papra/cli@0.0.2","@papra/app-server@0.6.4","@papra/app-client@0.6.4","@papra/api-sdk@1.0.2","@papra/docs@0.5.1","@papra/app-server@0.6.3","@papra/app-client@0.6.3","@papra/docs@0.5.0","@papra/app-server@0.6.2","@papra/app-client@0.6.2","@papra/docs@0.4.2","@papra/app-server@0.6.1","@papra/app-client@0.6.1","@papra/docs@0.4.1","@papra/app-server@0.6.0","@papra/app-client@0.6.0","@papra/app-server@0.5.1","@papra/app-client@0.5.1","@papra/docs@0.4.0","@papra/app-server@0.5.0","@papra/app-client@0.5.0","@papra/webhooks@0.1.0","@papra/docs@0.3.1","@papra/cli@0.0.1","@papra/app-server@0.4.0","@papra/app-client@0.4.0","@papra/api-sdk@1.0.1","v0.3.0","v0.2.1","v0.2.0","v0.1.2","v0.1.1","v0.1.0","v0.0.1","v0.0.1-beta.2","v0.0.1-beta.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-35462.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N"}]}