GitHub Advisoryadvisory · PyPI
GHSA-r2hr-4v48-fjv3 Nautobot's BANNER_* configuration can be used to inject arbitrary HTML content into Nautobot pages
HIGH
Official page ↗
- Aliases
- CVE-2024-34707
- Ecosystem
- PyPI
- Packages
- nautobot
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:H/A:L
- Weaknesses
- CWE-79
- Reviewed
- 2024-05-13
Affected packages
• PyPI nautobot: < 1.6.22 → fixed in 1.6.22
• PyPI nautobot: >= 2.0.0, < 2.2.4 → fixed in 2.2.4
Description
Impact
A Nautobot user with admin privileges can modify the `BANNER_TOP`, `BANNER_BOTTOM`, and `BANNER_LOGIN` configuration settings via the `/admin/constance/config/` endpoint. Normally these settings are used to provide custom banner text at the top and bottom of all Nautobot web pages (or specifically on the login page in the case of `BANNER_LOGIN`) but it was reported that an admin user can make use of these settings to inject arbitrary HTML, potentially exposing Nautobot users to security issues such as cross-site scripting (stored XSS).
Patches
_Has the problem been patched? What versions should users upgrade to?_
Patches will be released as part of Nautobot 1.6.22 and 2.2.4.
Workarounds
_Is there a way for users to fix or remediate the vulnerability without upgrading?_
As described in the Nautobot documentation, these settings are only configurable through the admin UI of Nautobot if they are *not* explicitly set to some non-empty value in the `nautobot_config.py` or equivalent Nautobot configuration file. Therefore, adding the following configuration to said file completely mitigates this vulnerability in both Nautobot 1.x and 2.x:
```python
BANNER_LOGIN = " "
BANNER_TOP = " "
BANNER_BOTTOM = " "
```
or alternately (Nautobot 2.x only), if those variables are not defined explicitly in your configuration file, setting the following environment variables for the Nautobot user account serves the same purpose:
```shell
NAUTOBOT_BANNER_LOGIN=" "
NAUTOBOT_BANNER_TOP=" "
NAUTOBOT_BANNER_BOTTOM=" "
```
Limiting all users who do not need elevated privileges to non-admin access (`is_superuser: False` and `is_staff: False`) is a partial mitigation as well.
References
• https://github.com/nautobot/nautobot/pull/5697
• https://github.com/nautobot/nautobot/pull/5698
Related
Alias · CVE (1)
- CVE-2024-34707 Nautobot is a Network Source of Truth and Network Automation Platform. vulnerability
Weakness · CWE (1)
- CWE-79 Improper Neutralization of Input During Web Page Generation weakness
References
- https://github.com/nautobot/nautobot/security/advisories/GHSA-r2hr-4v48-fjv3 web
- https://nvd.nist.gov/vuln/detail/CVE-2024-34707 advisory
- https://github.com/nautobot/nautobot/pull/5697 web
- https://github.com/nautobot/nautobot/pull/5698 web
- https://github.com/nautobot/nautobot/commit/4f0a66bd6307bfe0e0acb899233e0d4ad516f51c web
- https://github.com/nautobot/nautobot/commit/f640aedc69c848d3d1be57f0300fc40033ff6423 web
- https://github.com/nautobot/nautobot package