CVE-2023-32228
Executive Summary
CVE-2023-32228 is a firmware logic defect in the Bosch AMC2-4WCF and AMC2-2WCF access management controllers. The bug causes the controller to misinterpret internal authorization data, allowing an adversary to obtain the access rights of the most recently authorized user on the system. Organizations using these controllers for physical access control are affected; the NVD assigns a CVSS base score of 4.6 (Medium), and no public exploit, CISA KEV listing, or confirmed in-the-wild activity exists at the time of writing.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The NVD description is intentionally sparse: "A firmware bug which may lead to misinterpretation of data in the AMC2-4WCF and AMC2-2WCF allowing an adversary to grant access to the last authorized user." No CWE, no CVSS vector, and no affected version range are published, so the following analysis is provided at the vulnerability-class level.
The core defect is a firmware-level state-management failure. The phrase "misinterpretation of data" indicates that the controller's authentication/authorization decision path does not correctly re-validate the identity of the last authorized user under certain conditions. Instead of rejecting a non-matching credential, the controller resolves the ambiguous state in favor of the last authorized user's access profile. This is consistent with an authorization/logic error class (plausibly an improper state-handling or input-validation weakness), rather than a classic memory-corruption or injection flaw.
The attack surface is twofold:
- Physical credential path — an adversary with physical access to a reader/keypad connected to the AMC2 controller can attempt to trigger the faulty state by presenting credential material during the affected code path.
- Network/management path — the controllers are networked access-management devices; any service exposed for configuration, firmware update, or audit retrieval may be used to interact with the vulnerable firmware logic, though the description does not enumerate specific protocols or ports.
Because the bug lives in firmware, it sits below the host operating system and may persist across reboots if the flawed logic is part of the boot-time authorization state store. The "last authorized user" primitive suggests the flaw involves the persistence of a prior granted session or cached access-right record.
Patching status: The CNA claims a fix exists, but it is not independently confirmed (patch confidence 2/4). The absence of a public advisory ID or version number means defenders cannot currently fingerprint patched versus vulnerable firmware from public data.
Exploitation Scenarios
No public PoC is available; the attack chain below is inferred strictly from the vulnerability class described in the NVD entry.
Reconnaissance / target identification — The adversary identifies an AMC2-4WCF or AMC2-2WCF controller via network discovery or Shodan-style dorking for the model identifiers, or via physical reconnaissance of the site's door hardware. The adversary also observes normal access patterns to learn who the last authorized user is likely to be (e.g., an employee who badged through shortly before the attack).
Triggering the flaw — At the vulnerability-class level, the adversary delivers crafted input to the controller's credential interpretation path — for example, presenting a card, token, or PIN, or supplying a malformed credential/configuration payload through the management interface. The flawed firmware interprets this input ambiguously and the authorization state machine falls back to the "last authorized user" record.
Payload / execution method — No specific payload exists in the public data. The effective mechanism is a state confusion: the controller believes the presented input maps to the last authorized user's identity and emits an "access granted" decision. No memory corruption, command injection, or code execution is implied by the description.
Post-exploitation impact — The adversary gains the access rights of the last authorized user, which may translate directly to physical entry through the protected door, gate, or portal. If the controller also records the event as a legitimate access by the impersonated user, the activity may blend into normal audit logs. The adversary does not need to steal the victim's physical credential because the controller itself performs the erroneous authorization.
Mitigating factors: the medium CVSS score (4.6) and the very low EPSS percentile (14.5%) suggest exploitation is not trivial and is not currently being actively exploited in the wild.
Impact Assessment
- CVSS base score: 4.6 (Medium). The NVD did not publish a vector string, so the sub-scores cannot be computed from this data source. A score of 4.6 is consistent with a locally or circumstantially constrained authorization bypass requiring some condition (such as the existence of a prior authorized user session).
- Affected systems: Bosch AMC2-4WCF and AMC2-2WCF access management controllers and the physical security infrastructure they control.
- Business impact: The primary impact is physical security compromise. An attacker who gains access to the last authorized user's rights can bypass door-control policies, which may lead to theft, vandalism, personnel safety incidents, or regulatory violations for compliance-regulated facilities (e.g., critical infrastructure, data centers, controlled-access labs).
- Blast radius: Limited to the specific controller variants; however, a single compromised door controller can give an attacker a foothold inside a facility, enabling lateral movement in the physical world. The "last authorized user" identity spoofing also degrades audit integrity — investigations will struggle to distinguish the attacker's access from the legitimate user's access.
- Exploitation likelihood: EPSS = 0.00233 (14.5th percentile), CISA KEV = NO, no public PoC, no Nuclei template, no exploit code. Current likelihood of in-the-wild exploitation is low, but physical-security CVEs are often weaponized in small, low-signature incidents rather than mass campaigns.
Detection Guidance
The vulnerability is a firmware logic flaw with no published network signature or exploit pattern. Detection therefore relies on anomaly and correlation rules that flag unexpected authentication state transitions and management-plane interactions with AMC2 controllers. Field names in the rules below are illustrative; adapt them to your access-control audit schema.
Sigma Rule
title: Bosch AMC2 - Access Granted with Mismatched Credential Identity
id: 6d9f5f3a-2c12-4b0e-9a5d-88f3c1b2e034
status: experimental
description: >
Detects a successful access-grant event on a Bosch AMC2-4WCF/AMC2-2WCF
controller where the presented credential identifier does not match the
authorized user identity it resolved to. Correlates with the CVE-2023-32228
data-misinterpretation flaw (authorization fallback to last authorized user).
logsource:
product: physical_access_control
service: amc2
detection:
selection_granted:
EventType: "Access Granted"
filter_expected_binding:
CredentialID|equals: AuthorizedUserID # normal: credential binds to its owner
condition: selection_granted and not filter_expected_binding
falsepositives:
- Temporary badge loaning or visitor badge misconfiguration
- Access-control software upgrades that alter log field semantics
level: high
tags:
- attack.t1078
- cve.2023-32228
YARA Rule
rule CVE_2023_32228_Bosch_AMC2_Firmware
{
meta:
description = "Flags firmware images or analysis artifacts referencing the affected Bosch AMC2-4WCF/AMC2-2WCF access controllers"
author = "valtersit.com Threat Intelligence"
reference = "CVE-2023-32228"
severity = "medium"
strings:
$m1 = "AMC2-4WCF" ascii wide
$m2 = "AMC2-2WCF" ascii wide
$m3 = "AMC2" ascii wide
$auth = "authorized user" ascii wide nocase
$grant = "access granted" ascii wide nocase
condition:
filesize < 200MB and
(any of ($m1, $m2) or ($m3 and any of ($auth, $grant)))
}
Suricata IDS Rule
alert tcp any any -> any any (msg:"CVE-2023-32228 - Bosch AMC2 access controller management traffic referencing affected models"; flow:established,to_server; content:"AMC2"; nocase; pcre:"/AMC2-[42]WCF/i"; classtype:attempted-admin; reference:cve,2023-32228; sid:20233228; rev:1;)
Note: Suricata cannot signature the firmware logic flaw itself. This rule alerts on cleartext management sessions referencing either affected model identifier (AMC2-4WCF or AMC2-2WCF), which is useful for inventorying exposure. Pair it with NetFlow/Zeek analytics to flag new or unexpected source IPs initiating management sessions with the controllers.
Elastic Detection
sequence by host.name, source.ip with maxspan=10m
[ authentication where event.outcome == "failure" and
(host.hardware.model == "AMC2-4WCF" or host.hardware.model == "AMC2-2WCF") ]
[ authentication where event.outcome == "success" and
(host.hardware.model == "AMC2-4WCF" or host.hardware.model == "AMC2-2WCF") ]
This EQL sequence flags a failed authentication attempt followed within 10 minutes by a successful authentication against the same Bosch AMC2 controller from the same source — the exploitable state-transition pattern implied by the "last authorized user" fallback.
Splunk SPL Query
index=access_control sourcetype=*amc2* "AMC2"
| sort 0 _time
| eval cred_key = lower(coalesce(credential_id, card_id, token_id, "unknown"))
| streamstats current=true last(authorized_user) as last_user, last(cred_key) as last_cred by controller_id
| where authorized_user == last_user and cred_key != last_cred
| eval alert = "Potential CVE-2023-32228: access granted as " . authorized_user . " on " . controller_id . " with non-matching credential " . cred_key
| table _time, controller_id, authorized_user, cred_key, last_cred, src_ip, alert
The query correlates access-grant events where the controller attributed access to an authorized user whose last presented credential differs — directly targeting the "misinterpretation of data / last authorized user" behavior described in the advisory.
Wazuh OSSEC Rule
<group name="physical_access_control,">
<!-- CVE-2023-32228: Access granted immediately following a denial on the same Bosch AMC2 controller -->
<rule id="100322" level="10" frequency="2" timeframe="300">
<if_matched_sid>100321</if_matched_sid>
<match>Access Granted</match>
<description>CVE-2023-32228: Bosch AMC2 authorization fallback pattern - access granted after recent denial</description>
<group>authentication,physical_access,</group>
</rule>
<!-- Base rule: any denial event from AMC2 controllers -->
<rule id="100321" level="3">
<match>Access Denied|AMC2</match>
<description>Bosch AMC2 controller access denial event</description>
<group>authentication,physical_access,</group>
</rule>
</group>
The frequency-based rule fires when an "Access Denied" event from an AMC2 controller is followed by an "Access Granted" event on the same controller within 5 minutes — the behavioral signature of the flawed authorization fallback.
Mitigation & Patch Guidance
Patch confidence is 2/4 (claimed by the CNA, not independently confirmed). Do not assume the fix is sufficient until verified.
Immediate mitigations:
- Reduce network exposure of AMC2 management and configuration interfaces; place them on a dedicated, firewalled access-control VLAN reachable only by authorized administrative hosts.
- Monitor and audit physical access control logs for the "granted after denial" anomaly patterns described above.
- Enforce physical tamper detection on controller enclosures; the flaw may be triggerable through the local credential path.
- Change door schedules and sensitive-area access policies temporarily if the controllers cannot be patched immediately.
Patch / upgrade steps:
- Contact Bosch (the CNA) or your Bosch channel partner to obtain the claimed firmware fix. No public advisory ID or version number is available in the source data — an official confirmation is required.
- Because the patch is not independently confirmed, obtain the firmware hash/checksum from Bosch and test on a non-production controller before deployment.
- After upgrading, validate door behavior: present a revoked credential and a mismatched credential and confirm the controller issues "Access Denied."
Long-term hardening:
- Establish a firmware inventory and update baseline for all AMC2-4WCF/AMC2-2WCF units, including CVE monitoring alerts.
- Segment the physical security network from the corporate IT network; restrict outbound connections from controllers.
- Enable and centrally collect controller audit logs for SIEM correlation (Splunk/Elastic/Wazuh rules above).
- Re-test the patch across all controller variants and firmware revisions in your environment, and require vendor evidence of the fix before closing the vulnerability ticket.
References
- NVD — CVE-2023-32228: https://nvd.nist.gov/vuln/detail/CVE-2023-32228
- CVE.org Record — CVE-2023-32228: https://www.cve.org/CVERecord?id=CVE-2023-32228
- FIRST EPSS — CVE-2023-32228 score data (0.00233, 14.5th percentile): https://www.first.org/epss/
- MITRE ATT&CK — T1078 Valid Accounts: https://attack.mitre.org/techniques/T1078/
- CISA Known Exploited Vulnerabilities (KEV) Catalog: CVE-2023-32228 is NOT listed: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Threat actor / in-the-wild activity: No known threat actor campaigns or exploit-in-the-wild evidence exist for this CVE at the time of writing. The EPSS percentile (14.5%) and absence from CISA KEV are consistent with low active exploitation. The sole patch source is the CNA; no independent researcher analysis or public vendor advisory URL was included in the supplied intelligence data.