Security advisory
PwnDoc all versions until 0.4.0 (2021-08-23) has incorrect JSON Webtoken handling, leading to incorrect access control. With a valid JSON Webtoken that is used for authentication and authorization, a user can keep his admin privileges even if he is downgraded to the "user" privilege. Even after a user's account is deleted, the user can still access the administration panel (and add or delete users) and has complete access to the system.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2021-31590
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 31 Oct 2026, 11:45 UTC · Revision 1
Source evidence
PwnDoc all versions until 0.4.0 (2021-08-23) has incorrect JSON Webtoken handling, leading to incorrect access control. With a valid JSON Webtoken that is used for authentication and authorization, a user can keep his admin privileges even if he is downgraded to the "user" privilege. Even after a user's account is deleted, the user can still access the administration panel (and add or delete users) and has complete access to the system.
osv:CVE-2021-31590
Complete source record
{
"id": "7091f5f51ac9db9ef61456399fea662bde0b70376c960e806a5bb94bf4ec0b23",
"url": "https://osv.dev/vulnerability/CVE-2021-31590",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2021-31590",
"summary": "PwnDoc all versions until 0.4.0 (2021-08-23) has incorrect JSON Webtoken handling, leading to incorrect access control. With a valid JSON Webtoken that is used for authentication and authorization, a user can keep his admin privileges even if he is downgraded to the \"user\" privilege. Even after a user's account is deleted, the user can still access the administration panel (and add or delete users) and has complete access to the system.",
"evidence": "osv:CVE-2021-31590",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2021-31590",
"aliases": [
"CVE-2021-31590"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/pwndoc/pwndoc",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "59519735b0d831d8fd96d7c3387f66d28407e583"
},
{
"fixed": "15f3dc0e212eda465e05fda0feb002d1bce2939d"
},
{
"fixed": "ff1b868cec55f5b6c7a91e15a2b0b1f4324121ab"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:pwndoc_project:pwndoc:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "0.4.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "15f3dc0e212eda465e05fda0feb002d1bce2939d"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "ff1b868cec55f5b6c7a91e15a2b0b1f4324121ab"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-31590.json"
}
}
],
"modified": "2026-10-20T10:54:40.815016083Z",
"provider": "osv",
"references": [
"https://github.com/pwndoc/pwndoc/security/advisories",
"https://github.com/pwndoc/pwndoc/blob/59519735b0d831d8fd96d7c3387f66d28407e583/CHANGELOG.md#040-2021-08-23",
"https://github.com/pwndoc/pwndoc/commit/15f3dc0e212eda465e05fda0feb002d1bce2939d",
"https://github.com/pwndoc/pwndoc/commit/ff1b868cec55f5b6c7a91e15a2b0b1f4324121ab",
"https://github.com/pwndoc/pwndoc/pull/128",
"https://github.com/pwndoc/pwndoc/pull/74",
"https://www.dgc.org/responsible_disclosure_pwndoc_jwt"
],
"provider_metadata": {}
},
"related_cves": [
{
"value": "CVE-2021-31590",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 385874,
"published_at": "2021-07-19T20:15:08.66+00:00"
}