CVE-2025-0936

Summary

On affected platforms running Arista EOS with a gNMI transport enabled, running the gNOI File TransferToRemote RPC with credentials for a remote server may cause these remote-server credentials to be logged or accounted on the local EOS device or possibly on other remote accounting servers (i.e. TACACS, RADIUS, etc).

Affected Software

VendorProductVersion RangeStatus
Arista NetworksEOS4.33.0 <= 4.33.1affected
Arista NetworksEOS4.32.0 <= 4.32.3Maffected
Arista NetworksEOS4.31.0 <= 4.31.5Maffected
Arista NetworksEOS4.30.1F <= 4.30.9Maffected

Weaknesses

  • CWE-256: CWE-256

Workarounds

There are a number of possible workarounds:

Option 1 - disable accounting/logging for the OpenConfig transportFor example to disable accounting for transport named “default”:

switch(config)#management api gnmi switch(config-mgmt-api-gnmi)#transport grpc default switch(config-gnmi-transport-default)#no accounting requests

 

to disable logging for the OpenConfig agent, run:

switch(config)#no trace OpenConfig setting

 

Option 2 - disable the gNOI File service entirelyTo disable the gNOI File service, override the OCGNOIFileToggle, then restart OpenConfig to load the changes

switch#bash timeout 100 echo "OCGNOIFileToggle=0" >> /mnt/flash/toggle_override switch#agent OpenConfig terminate

 

Disabling the gNOI File service will mean that gNOI clients will no longer be able to call any gNOI File RPCs

Option 3 - block the TransferToRemote RPC using gNSI AuthzFor releases with gNSI Authz (EOS 4.31.0F and later releases), the TransferToRemote RPC can be blocked using gNSI Authz.

First enable gNSI Authz service by adding the following config:

switch(config)#management api gnsi switch(config-mgmt-api-gnsi)#service authz

Where [NAME] is the name of the running gNMI transport

Adding this config will cause the named gNMI transport to reload.

Next update the authz policy to block access to the TransferToRemote RPC. This can be done directly on the system by updating the Authz policy file and waiting at least 10 seconds for OpenConfig to reload the changes:

switch#bash timeout 100 echo "{&#34;name&#34;:&#34;block gNOI TransferToRemote policy&#34;,&#34;allow_rules&#34;:[{&#34;name&#34;:&#34;allow_all&#34;}],&#34;deny_rules&#34;:[{&#34;name&#34;:&#34;no-one-can-use-gnoi-transfer-to-remote&#34;,&#34;request&#34;:{&#34;paths&#34;:[&#34;/gnoi.file.File/TransferToRemote&#34;]}}]}" | sudo tee /persist/sys/gnsi/authz/policy.json && sleep 11

 

This will cause attempts to run the TransferToRemote RPC to fail with a “PermissionDenied” error code.

ADP Enrichment

CISA ADP Vulnrichment

  • SSVC:
  • Exploitation: poc
    • Automatable: no
    • Technical Impact: partial

Additional References

References