Home/ Blog/ Security news/ Article
Blog · Security news

BioStar 2 CVE-2026-31278: Active Directory Password Leak, Patch Now

Suprema BioStar 2 exposes its Active Directory bind password in cleartext via an API endpoint (CVE-2026-31278). Patch to 2.9.12 and rotate the account.

Biometric door access reader linked over a network to a directory server rack

Suprema's BioStar 2 controls who gets through the door. This week it also became a route into the domain. A high-severity flaw tracked as CVE-2026-31278 lets any account with operator-level access read the platform's stored Active Directory (AD) service-account password back in plaintext. If you run BioStar 2 with directory login enabled, the upgrade is not your first move. Rotating that account is.

What the flaw actually exposes

BioStar 2 integrates with Active Directory so staff can sign in with their directory accounts. To do that, it stores a bind account: a directory service account and its password, used to query the Lightweight Directory Access Protocol (LDAP) server. The web console masks that password behind dots, the way any settings screen should.

The application programming interface (API) behind the console does not. Researcher Abdullah Alannaz reported that a simple GET request to the /api/v2/setting/adserversetting endpoint returns the bind account name, its password, the LDAP server address, and the SSL configuration, all readable in the clear. The issue is classified as CWE-319, cleartext transmission of sensitive information. The affected products are named in the CVE record and in the researcher's public writeup.

It carries a CVSS score of 7.7. The shape of the flaw matters more than the number: an attacker needs a valid, low-privilege login to reach the endpoint, but nothing beyond that. The severity rating treats scope as changed, because the secret it hands over belongs to a different security boundary entirely. That is your directory, not the door controller.

Which versions are affected

  • Affected: BioStar 2 before 2.9.12, and BioStar X before 1.0.2.
  • Fixed: BioStar 2 version 2.9.12, and BioStar X version 1.0.2.

There is no report of exploitation in the wild, and the flaw is not in the CISA Known Exploited Vulnerabilities catalog at the time of writing. A researcher writeup describing the endpoint is already public, so treat the technique as known rather than theoretical.

Why patching is step two, not step one

Here is the part a plain advisory recap skips. From the moment that endpoint shipped, the bind password was readable by anyone who has ever held an operator login on that server. Upgrading to 2.9.12 stops the endpoint from handing it out again. It does nothing about the credential that already walked out the door.

That credential is rarely a low-value one. A directory bind account is often granted more read access across the domain than it strictly needs, and service-account passwords tend to sit unchanged for years because rotating them means touching every system that authenticates against them. So the realistic blast radius is domain reconnaissance and lateral movement using a legitimate account, launched from a physical-access appliance that most security teams never put inside their identity threat model.

How to tell if someone already pulled it

The endpoint is a legitimate admin API, so you cannot simply block it. You can watch it. Read your BioStar 2 web tier access logs for requests to the settings endpoint, and treat any session or source address that fetched it as one that has seen the password.

BioStar 2 web/API access log - flag reads of the AD settings endpoint
grep "/api/v2/setting/adserversetting" access.log
# who pulled it, so you know whose view of the secret is now burned
grep "/api/v2/setting/adserversetting" access.log | awk '{print $1, $4}' | sort | uniq -c | sort -rn

If your BioStar 2 server sends its logs to a managed detection service, this is a one-line detection to stand up: alert on reads of that path from anything other than the handful of admin sessions that legitimately open the AD settings screen.

Rotate the credential before you patch

Work the exposure, not just the version number.

  • Reset the Active Directory service account's password now, and audit what that account can actually read across the domain. If it has more rights than the BioStar 2 integration needs, trim them.
  • Upgrade BioStar 2 to 2.9.12, or BioStar X to 1.0.2, to stop the endpoint from leaking again.
  • Keep the BioStar 2 API off the open internet and restrict it to a management network. Physical-access consoles do not belong on a public interface.
  • Turn on LDAPS so the directory traffic itself is encrypted in transit, not only the stored setting.

The pattern worth noticing

This is the same failure we keep documenting under a different logo: a secret dutifully masked in the interface while an API quietly returns it in full. We saw it when Puppet stored the passwords it was told to hide in cleartext, when SUSE Rancher kept cluster join tokens in plaintext, and in the Squid proxy credential leak. The dots on the screen are cosmetic. Assume every stored secret your platform holds is exactly as protected as its least-guarded read path, and test that read path yourself before an advisory does it for you.

Frequently asked questions

What is CVE-2026-31278?

CVE-2026-31278 is a high-severity information disclosure flaw in Suprema BioStar 2. An authenticated, low-privilege user can send a GET request to the /api/v2/setting/adserversetting endpoint and receive the stored Active Directory bind account password and LDAP settings in cleartext.

Which BioStar versions are affected and fixed?

The flaw affects BioStar 2 before version 2.9.12 and BioStar X before version 1.0.2. It is fixed in BioStar 2 2.9.12 and BioStar X 1.0.2. If you use Active Directory login with BioStar 2, upgrade to the patched release.

Is CVE-2026-31278 being exploited in the wild?

There is no public report of exploitation, and the flaw is not in the CISA Known Exploited Vulnerabilities catalog at the time of writing. A researcher writeup describing the endpoint is public, so treat the technique as known and prioritize the fix accordingly.

Why should I rotate the Active Directory account before patching?

Patching stops the endpoint from leaking the password again, but anyone who ever held an operator login could already have read it. The exposed credential stays valid until you reset it, so rotate the Active Directory service account first, then upgrade.

How can I detect if the credential was already read?

Search your BioStar 2 web tier access logs for requests to /api/v2/setting/adserversetting. The endpoint is a legitimate admin API, so alert on reads from any session or source address that is not one of the few admins who open the Active Directory settings screen.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.