CVE-2019-12887:
LinOTP replay vulnerability with auto resynchronization enabled for TOTP token
8.1
CVSS Score
3.0
Basic Information
CVE ID
GHSA ID
EPSS Score
0.5685%
CWE
Published
5/24/2022
Updated
9/30/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
LinOTP | pip | >= 0, < 2.11.1 | 2.11.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from the autosync
function in totptoken.py
handling OTP validation during resynchronization. The commit diff shows a critical addition where a check was implemented to reject OTPs with counters lower than the stored counter (res < self.getOtpCount()
). This indicates the original implementation allowed OTP reuse by not validating counter chronology during auto-resync. The added test cases in test_totp.py
explicitly verify this fix by testing replay resistance, confirming the autosync
function was the vulnerable component.