CVE-2016-20031 ZKTeco ZKBioSecurity 3.0 Local Authorization Bypass via visLogin.jsp

Medium 6.8 Published Updated

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.

Is CVE-2016-20031 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free