TACACS+ authentication bypass

Summary

A missing authentication for critical function vulnerability [CWE-306] in FortiOS, FortiProxy, and FortiSwitchManager TACACS+ configured to use a remote TACACS+ server for authentication, that has itself been configured to use ASCII authentication may allow an attacker with knowledge of an existing admin account to access the device as a valid admin via an authentication bypass.

Version Affected Solution
FortiOS 7.6 7.6.0 Upgrade to 7.6.1 or above
FortiOS 7.4 7.4.4 through 7.4.6 Upgrade to 7.4.7 or above
FortiOS 7.2 Not affected Not Applicable
FortiOS 7.0 Not affected Not Applicable
FortiOS 6.4 Not affected Not Applicable
FortiProxy 7.6 7.6.0 through 7.6.1 Upgrade to 7.6.2 or above
FortiProxy 7.4 Not affected Not Applicable
FortiProxy 7.2 Not affected Not Applicable
FortiProxy 7.0 Not affected Not Applicable
FortiProxy 2.0 Not affected Not Applicable
FortiSwitchManager 7.2 7.2.5 Upgrade to 7.2.6 or above
FortiSwitchManager 7.0 Not affected Not Applicable
Follow the recommended upgrade path using our tool at: https://docs.fortinet.com/upgrade-tool

This vulnerability is limited to configurations where ASCII authentication is used. PAP, MSCHAP, and CHAP configurations are not impacted.

Workaround

Use an alternate authentication method:

config user tacacs+
edit "TACACS-SERVER"
set server <IP address>
set key <string>
set authen-type [pap, mschap, chap]
set source-ip <IP address>
next
end

OR

config user tacacs+
edit "TACACS-SERVER"
set server <IP address>
set key <string>
unset authen-type
set source-ip <IP address>
next
end

By default (set authen-type auto), ASCII authentication will not be used.

Acknowledgement

Fortinet is pleased to thank Cam B from Vital and NBS Telecom's Matheus Maia for reporting this vulnerability under responsible disclosure.

Timeline

2025-05-13: Initial publication
2025-05-28: clarifying that authen-type auto is NOT impacted as ASCII is not used