{"id":"CVE-2020-11037","aliases":["EUVD-2020-0236","GHSA-jjjr-3jcw-f8v6","PYSEC-2020-153"],"status":"published","title":"Potential Observable Timing Discrepancy in Wagtail","description":"In Wagtail before versions 2.7.3 and 2.8.2, a potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. This is [understood to be feasible on a local network, but not on the public internet](https://groups.google.com/d/msg/django-developers/iAaq0pvHXuA/fpUuwjK3i2wJ).\n\nPrivacy settings that restrict access to pages/documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability.\n\nThis has been patched in 2.7.3, 2.8.2, 2.9.","severity":{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:L/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.0025,"percentile":0.1642,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-208","CWE-362"],"published":"2020-04-30T22:20:12Z","modified":"2026-10-20T10:51:42Z","fixes":[{"ecosystem":"PyPI","package":"wagtail","fixed_in":["2.7.3","2.8.2","2.9"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.7.3"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.8rc1"},{"fixed":"2.8.2"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.9rc1"},{"last_affected":"2.9rc1"},{"fixed":"2.9"}]}],"versions":["2.9rc1"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.7.3"}]}],"versions":["0.1","0.2","0.3","0.3.1","0.4","0.4.1","0.5","0.6","0.7","0.8","0.8.1","0.8.10","0.8.2","0.8.3","0.8.4","0.8.5","0.8.6","0.8.7","0.8.8","0.8.9","1.0","1.0b1","1.0b2","1.0rc1","1.0rc2","1.1","1.10","1.10.1","1.10rc1","1.11","1.11.1","1.11rc1","1.12","1.12.1","1.12.2","1.12.3","1.12.4","1.12.5","1.12.6","1.12rc1","1.13","1.13.1","1.13.2","1.13.3","1.13.4","1.13rc1","1.1rc1","1.2","1.2rc1","1.3","1.3.1","1.3rc1","1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.4rc1","1.5","1.5.1","1.5.2","1.5.3","1.5rc1","1.6","1.6.1","1.6.2","1.6.3","1.6rc1","1.7","1.7rc1","1.8","1.8.1","1.8.2","1.8rc1","1.9","1.9.1","1.9rc1","2.0","2.0.1","2.0.2","2.0b1","2.0rc1","2.1","2.1.1","2.1.2","2.1.3","2.1rc1","2.1rc2","2.2","2.2.1","2.2.2","2.2rc1","2.2rc2","2.3","2.3rc1","2.3rc2","2.4","2.4rc1","2.5","2.5.1","2.5.2","2.5rc1","2.6","2.6.1","2.6.2","2.6.3","2.6rc1","2.7","2.7.1","2.7.2","2.7rc1","2.7rc2"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.8rc1"},{"fixed":"2.8.2"}]}],"versions":["2.8","2.8.1","2.8rc1"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.9rc1"},{"fixed":"2.9"}]}],"versions":["2.9rc1"]},{"source":"osv","ecosystem":"PyPI","package":"wagtail","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.7"},{"fixed":"2.7.3"},{"introduced":"2.8"},{"fixed":"2.8.2"}]}],"versions":["2.7","2.7.1","2.7.2","2.8","2.8.1"]}],"products":[{"vendor":"torchbox","product":"wagtail"},{"vendor":"wagtail","product":"wagtail"}],"references":[{"url":"https://github.com/wagtail/wagtail/security/advisories/GHSA-jjjr-3jcw-f8v6","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/wagtail/wagtail/commit/3c030490ed575bb9cd01dfb3a890477dcaeb2edf","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/wagtail/wagtail/commit/b76ab57ee859732b9cf9287d380493ab24061090","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/wagtail/wagtail/commit/ba9d424bd1ca5ce1910d3de74f5cc07214fbfb11","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/wagtail/wagtail/commit/bac3cd0a26b023e595cf2959aae7da15bb5e4340","tags":["x_refsource_MISC","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-11037","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/wagtail/PYSEC-2020-153.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-jjjr-3jcw-f8v6"},{"url":"https://github.com/wagtail/wagtail","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-11037","title":"Potential Observable Timing Discrepancy in Wagtail","description":"In Wagtail before versions 2.7.3 and 2.8.2, a potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. This is [understood to be feasible on a local network, but not on the public internet](https://groups.google.com/d/msg/django-developers/iAaq0pvHXuA/fpUuwjK3i2wJ).\n\nPrivacy settings that restrict access to pages/documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability.\n\nThis has been patched in 2.7.3, 2.8.2, 2.9.","status":"published","published":"2020-04-30T22:20:12Z","modified":"2024-11-19T15:42:15.578Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-208"],"updated_at":"2026-11-02T14:35:57.67317Z"}],"euvd":[{"id":"EUVD-2020-0236","description":"In Wagtail before versions 2.7.3 and 2.8.2, a potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. This is [understood to be feasible on a local network, but not on the public internet](https://groups.google.com/d/msg/django-developers/iAaq0pvHXuA/fpUuwjK3i2wJ).\n\nPrivacy settings that restrict access to pages/documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability.\n\nThis has been patched in 2.7.3, 2.8.2, 2.9.","status":"published","published":"2020-04-30T22:20:12Z","modified":"2024-11-19T15:42:15Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:L/A:N","level":"medium"}],"updated_at":"2026-11-03T00:04:56.132572Z"}],"ghsa":[{"id":"GHSA-jjjr-3jcw-f8v6","title":"Potential Observable Timing Discrepancy in Wagtail","description":"### Impact\nA potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. (This is [understood to be feasible on a local network, but not on the public internet](https://groups.google.com/d/msg/django-developers/iAaq0pvHXuA/fpUuwjK3i2wJ).)\n\nPrivacy settings that restrict access to pages / documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability.\n\n### Patches\nPatched versions have been released as Wagtail 2.7.3 (for the LTS 2.7 branch), Wagtail 2.8.2 and Wagtail 2.9.\n\n### Workarounds\nSite owners who are unable to upgrade to the new versions can use [user- or group-based privacy restrictions](https://docs.wagtail.io/en/stable/advanced_topics/privacy.html) to restrict access to sensitive information; these are unaffected by this vulnerability.","status":"published","published":"2020-05-07T18:04:53Z","modified":"2024-11-19T19:19:46Z","cvss":[{"version":"4.0","score":4.3,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N","level":"medium"},{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:L/A:N","level":"medium"}],"cwes":["CWE-208","CWE-362"],"updated_at":"2026-11-02T14:38:21.777721Z"}],"nvd":[{"id":"CVE-2020-11037","description":"In Wagtail before versions 2.7.3 and 2.8.2, a potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. This is [understood to be feasible on a local network, but not on the public internet](https://groups.google.com/d/msg/django-developers/iAaq0pvHXuA/fpUuwjK3i2wJ).\n\nPrivacy settings that restrict access to pages/documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability.\n\nThis has been patched in 2.7.3, 2.8.2, 2.9.","status":"published","published":"2020-04-30T23:15:11.887Z","modified":"2026-06-17T02:48:55.093Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:L/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":1.9,"vector":"AV:L/AC:M/Au:N/C:P/I:N/A:N","level":"low","assessor":"primary"}],"cwes":["CWE-208","CWE-362"],"updated_at":"2026-11-02T14:05:59.718774Z"}],"osv":[{"id":"CVE-2020-11037","description":"In Wagtail before versions 2.7.3 and 2.8.2, a potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. This is [understood to be feasible on a local network, but not on the public internet](https://groups.google.com/d/msg/django-developers/iAaq0pvHXuA/fpUuwjK3i2wJ).\n\nPrivacy settings that restrict access to pages/documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability.\n\nThis has been patched in 2.7.3, 2.8.2, 2.9.","status":"published","published":"2020-04-30T23:15:11.887Z","modified":"2026-10-20T10:51:42.693385082Z","cvss":[{"version":"3.1","score":4.7,"vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:13.492058Z"},{"id":"GHSA-jjjr-3jcw-f8v6","title":"Potential Observable Timing Discrepancy in Wagtail","description":"### Impact\nA potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. (This is [understood to be feasible on a local network, but not on the public internet](https://groups.google.com/d/msg/django-developers/iAaq0pvHXuA/fpUuwjK3i2wJ).)\n\nPrivacy settings that restrict access to pages / documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability.\n\n### Patches\nPatched versions have been released as Wagtail 2.7.3 (for the LTS 2.7 branch), Wagtail 2.8.2 and Wagtail 2.9.\n\n### Workarounds\nSite owners who are unable to upgrade to the new versions can use [user- or group-based privacy restrictions](https://docs.wagtail.io/en/stable/advanced_topics/privacy.html) to restrict access to sensitive information; these are unaffected by this vulnerability.","status":"published","published":"2020-05-07T18:04:53Z","modified":"2026-07-08T06:00:56.875033918Z","cvss":[{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:H/I:L/A:N","level":"medium"},{"version":"4.0","score":4.3,"vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:H/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N","level":"medium"}],"cwes":["CWE-208","CWE-362"],"updated_at":"2026-11-02T15:46:50.687609Z"},{"id":"PYSEC-2020-153","description":"In Wagtail before versions 2.7.2 and 2.8.2, a potential timing attack exists on pages or documents that have been protected with a shared password through Wagtail's \"Privacy\" controls. This password check is performed through a character-by-character string comparison, and so an attacker who is able to measure the time taken by this check to a high degree of accuracy could potentially use timing differences to gain knowledge of the password. This is understood to be feasible on a local network, but not on the public internet. Privacy settings that restrict access to pages/documents on a per-user or per-group basis (as opposed to a shared password) are unaffected by this vulnerability. This has been patched in 2.7.3, 2.8.2, 2.9.","status":"published","published":"2020-04-30T23:15:00Z","modified":"2026-06-08T11:15:04.223652604Z","updated_at":"2026-11-02T15:52:52.192131Z"}]}}
