Advisories for Pypi/Nautobot package

2024

Nautobot dynamic-group-members doesn't enforce permission restrictions on member objects

What kind of vulnerability is it? Who is impacted? A user with permissions to view Dynamic Group records (extras.view_dynamicgroup permission) can use the Dynamic Group detail UI view (/extras/dynamic-groups/<uuid>/) and/or the members REST API view (/api/extras/dynamic-groups/<uuid>/members/) to list the objects that are members of a given Dynamic Group. In versions of Nautobot between 1.3.0 (where the Dynamic Groups feature was added) and 1.6.22 inclusive, and 2.0.0 through 2.2.4 inclusive, Nautobot …

Nautobot's BANNER_* configuration can be used to inject arbitrary HTML content into Nautobot pages

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 has reflected Cross-site Scripting potential in all object list views

It was discovered that due to improper handling and escaping of user-provided query parameters, a maliciously crafted Nautobot URL could potentially be used to execute a Reflected Cross-Site Scripting (Reflected XSS) attack against users. All filterable object-list views in Nautobot are vulnerable, including: /dcim/location-types/ /dcim/locations/ /dcim/racks/ /dcim/rack-groups/ /dcim/rack-reservations/ /dcim/rack-elevations/ /tenancy/tenants/ /tenancy/tenant-groups/ /extras/tags/ /extras/statuses/ /extras/roles/ /extras/dynamic-groups/ /dcim/devices/ /dcim/platforms/ /dcim/virtual-chassis/ /dcim/device-redundancy-groups/ /dcim/interface-redundancy-groups/ /dcim/device-types/ /dcim/manufacturers/ /dcim/cables/ /dcim/console-connections/ /dcim/power-connections/ /dcim/interface-connections/ /dcim/interfaces/ /dcim/front-ports/ /dcim/rear-ports/ /dcim/console-ports/ …

Unauthenticated views may expose information to anonymous users

A number of Nautobot URL endpoints were found to be improperly accessible to unauthenticated (anonymous) users, including the following: /api/graphql/ (1) /api/users/users/session/ (Nautobot 2.x only; the only information exposed to an anonymous user is which authentication backend classes are enabled on this Nautobot instance) /dcim/racks/<uuid:pk>/dynamic-groups/ (1) /dcim/devices/<uuid:pk>/dynamic-groups/ (1) /extras/job-results/<uuid:pk>/log-table/ /extras/secrets/provider/<str:provider_slug>/form/ (the only information exposed to an anonymous user is the fact that a secrets provider with the given slug (e.g. …

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Nautobot is a Network Source of Truth and Network Automation Platform built as a web application. All users of Nautobot versions earlier than 1.6.10 or 2.1.2 are potentially impacted by a cross-site scripting vulnerability. Due to inadequate input sanitization, any user-editable fields that support Markdown rendering, including are potentially susceptible to cross-site scripting (XSS) attacks via maliciously crafted data. This issue is fixed in Nautobot versions 1.6.10 and 2.1.2.

2023

Incorrect Authorization

Nautobot is a Network Source of Truth and Network Automation Platform built as a web application atop the Django Python framework with a PostgreSQL or MySQL database. When submitting a Job to run via a Job Button, only the model-level extras.run_job permission is checked (i.e., does the user have permission to run Jobs in general). Object-level permissions (i.e., does the user have permission to run this specific Job?) are not …

Exposure of Sensitive Information to an Unauthorized Actor

Nautobot is a Network Source of Truth and Network Automation Platform built as a web application atop the Django Python framework with a PostgreSQL or MySQL database. In Nautobot 1.x and 2.0.x prior to 1.6.7 and 2.0.6, the URLs /files/get/?name=… and /files/download/?name=… are used to provide admin access to files that have been uploaded as part of a run request for a Job that has FileVar inputs. Under normal operation …

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

Nautobot is a Network Source of Truth and Network Automation Platform built as a web application All users of Nautobot versions earlier than 1.6.6 or 2.0.5 are potentially affected by a cross-site scripting vulnerability. Due to incorrect usage of Django's mark_safe() API when rendering certain types of user-authored content; including custom links, job buttons, and computed fields; it is possible that users with permission to create or edit these types …

Nautobot vulnerable to exposure of hashed user passwords via REST API

Impact In Nautobot 2.0.x, certain REST API endpoints, in combination with the ?depth=<N> query parameter, can expose hashed user passwords as stored in the database to any authenticated user with access to these endpoints. The passwords are not exposed in plaintext. Nautobot 1.x is not affected by this vulnerability. This information is not exposed during direct access to the /api/users/users/ endpoint, but can be exposed through any endpoint which contains …

Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

Nautobot is a Network Source of Truth and Network Automation Platform. All users of Nautobot versions earlier than 1.5.7 are impacted by a remote code execution vulnerability. Nautobot does not properly sandbox Jinja2 template rendering. In Nautobot 1.5.7 has enabled sandboxed environments for the Jinja2 template engine used internally for template rendering for the following objects: extras.ComputedField, extras.CustomLink, extras.ExportTemplate, extras.Secret, extras.Webhook. While no active exploits of this vulnerability are known …