ACL: Server-object (i=2253) event subscriptions bypass the data-plane ACL #586
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found while closing #562 (event/alarm monitored-item revalidation).
What is wrong: an event monitored item on the Server object (
i=2253) bypasses the data-plane ACL entirely — at creation and at revalidation. The SDK routes it throughSubscribeToAllEventsand the core node manager's Server object, whichOtOpcUaNodeManagernever sees, so neither theSubscribeToEventscreation gate nor the #562 revalidation map applies.Observed over the wire (throwaway probe, not committed): with
Security:Acl:Enabled=true, an anonymous session holding no grant received a native alarm through a Server-object event item.Why it matters: native alarms report once to the Server object (one
ReportEvent, one Server-object copy — see CLAUDE.md), so this is the one feed that carries every alarm in the server, and it is ungated when ACL enforcement is on.To do:
DataPlaneAuthorizerdecision as the per-folder path (the event's source / ConditionId → RawPath scope).AclRevalidationTimer), reversibly.i=2253; granted session gets the event (positive control); revoke → stops; restore → resumes.Fixed: i=2253 items are delivered per condition with the same DataPlaneAuthorizer decision as the folder path (condition RawPath, notifier folders, equipment folders), the ungated folder→Server forward removed, ConditionRefresh filtered, SDK audit guard mirrored, EventsMonitored bookkeeping maintained. Independently reviewed (fix round + re-review APPROVE). Model-change/audit residual → #588. (merge
390c8269on master, pushed 2026-10-08)