CVE-2016-20031 ZKTeco ZKBioSecurity 3.0 Local Authorization Bypass via visLogin.jsp
Attackers can bypass authentication in ZKTeco ZKBioSecurity by spoofing localhost requests to access sensitive data and perform unauthorized actions.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- None listed
What is CVE-2016-20031?
CVE-2016-20031 is a medium-severity authentication bypass vulnerability in ZKTeco ZKBioSecurity, published on 15 Mar 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
ZKTeco ZKBioSecurity 3.0 contains a local authorization bypass vulnerability in visLogin.jsp that allows attackers to authenticate without valid credentials by spoofing localhost requests. Attackers can exploit the EnvironmentUtil.getClientIp() method which treats IPv6 loopback address 0:0:0:0:0:0:0:1 as 127.0.0.1 and authenticates using the IP as username with hardcoded password 123456 to access sensitive information and perform unauthorized actions.
Weakness: CWE-798
Which versions are affected by CVE-2016-20031?
How do I fix CVE-2016-20031?
No fix has been published for CVE-2016-20031 yet. Limit exposure of the affected software until one is available.
Upgrade, and rotate credentials and sessions that may have been exposed. More about Authentication bypass.
Is CVE-2016-20031 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2016-20031 exists.
Sources
Also known as GHSA-vq34-m74g-f6mp.