SNMP4J-Agent and SNMP4J-Agent-DB have been released 2026-07-14T22:00:00Z and 2026-07-16T22:00:00Z respectively.
Both version improve the sample security configuration to provide a more realistic (secure) setup.
SNMP4J-Agent CHANGES
- SECURITY:
VacmMIBnow selects the best matchingvacmAccessTableentry by scoring each candidate instead of an order-dependent chained condition. Following RFC 3415 section 4.4.2, an entry with an exactsecurityModelis now preferred over one usinganySecurityModel, an exact context match over a (shorter) prefix match, and a higher securityLevel over a lower one. This removes a latent access decision that depended on table iteration order. - SECURITY:
VacmMIB.getViewName(..)now also verifies that the requested context is supported before resolving a view (defense in depth), so callers reusing it as an entry point cannot obtain a view for a context that is not served by the agent. VACM.getViewName returns null for unsupported contexts. - SECURITY: Removed full read-write access for SNMPv3
noAuthNoPriv“unsec” users from SampleAgent’s sample configuration. Limted allauhtNoPrivusers to read-only access limited to system group. - SECURITY: Further improved
SampleAgentConfig.propertiesVACMconfiguration: Removed ‘unsec’noAuthNoPrivaccess from broader “viewer” views and assigned it to “minaccessgroup” (like all noPriv users). - Added: New
org.snmp4j.agent.io.prop.PropertyMOTreeBuilderbuilds an in-memoryMIBTreefrom anMOInputformatted property configuration (e.g.SampleAgentConfig.properties), reusingPropertyMOInputfor value parsing. Values that reference runtime instances which cannot be resolved statically (e.g.{$oid}) are preserved as UnresolvedReference placeholders (through the newReferenceVariableProvider) so that the
configured reference remains visible. - Added: New
org.snmp4j.agent.util.MIBTreeFormatterinterface with a MarkdownMIBTreeFormatter implementation that renders a MIBTree as a compact GitHub flavored Markdown overview (collapsed OID tree, scalars with their SMI syntax, and conceptual tables as Markdown tables). - Added: The SampleAgent accepts the optional “
-write-init-config <file>” command line option that writes a human readable Markdown overview of the initial MIB configuration (usingPropertyMOTreeBuilderandMarkdownMIBTreeFormatter) before the agent starts. Any provided “-viewer”/“-admin” pass keys are reflected in the overview.
SNMP4J-Agent-DB CHANGES
- SECURITY: Removed full read-write access for SNMPv3
noAuthNoPriv“unsec” users from SampleAgent’s sample configuration. Limted allauhtNoPrivusers to read-only access limited to system group. - SECURITY: Further improved
SampleAgentConfig.propertiesVACMconfiguration: Removed ‘unsec’noAuthNoPrivaccess from broader “viewer” views and assigned it to “minaccessgroup” (like all noPriv users). - Added: New
org.snmp4j.agent.io.prop.PropertyMOTreeBuilderbuilds an in-memoryMIBTreefrom anMOInputformatted property configuration (e.g.SampleAgentConfig.properties), reusingPropertyMOInputfor value parsing. Values that reference runtime instances which cannot be resolved statically (e.g.{$oid}) are preserved as UnresolvedReference placeholders (through the newReferenceVariableProvider) so that the
configured reference remains visible. - Added: New
org.snmp4j.agent.util.MIBTreeFormatterinterface with a MarkdownMIBTreeFormatter implementation that renders a MIBTree as a compact GitHub flavored Markdown overview (collapsed OID tree, scalars with their SMI syntax, and conceptual tables as Markdown tables). - Added: The SampleAgent accepts the optional “
-write-init-config <file>” command line option that writes a human readable Markdown overview of the initial MIB configuration (usingPropertyMOTreeBuilderandMarkdownMIBTreeFormatter) before the agent starts. Any provided “-viewer”/“-admin” pass keys are reflected in the overview.