Skip to content

Backslash in label value is not properly url-decoded #4804

@cobolbaby

Description

@cobolbaby

What did you do?

When creating a silence that contains a label value ending with a Windows path (e.g., E:), the Alertmanager UI incorrectly handles the backslash.

Example filter:

{volume_mount_point="E:\"}

After url decoding, Alertmanager treats the trailing backslash as an invalid escape sequence and fails to parse the label selector.

What did you expect to see?

Alertmanager UI should properly escape backslashes when constructing or decoding silence URLs.

Example:

volume_mount_point="E:\\" should be encoded in URL as E:%5C%5C and decoded back into a valid label selector instead of causing an parsing error.

What did you see instead? Under which circumstances?

The UI decodes E:%5C into E:\ but the backslash is not properly escaped, resulting in: volume_mount_point="E:\"

This causes the silence creation page to fail to load the selector.

Image Image

Link:

https://infra-prom-alert.ipt.inventec.net/#/silences/new?filter=%7Balertname%3D%22MSSQLNotHealthDisks%22%2C%20instance%3D%22mssql-exporter%3A9273%22%2C%20job%3D%22mssql%22%2C%20measurement_db_type%3D%22SQLServer%22%2C%20server_name%3D%22IPT-F3FISDB%22%2C%20severity%3D%22red%22%2C%20sql_instance%3D%22IPT-F3FISDB%22%2C%20volume_mount_point%3D%22E%3A%5C%22%7D

System information

No response

Alertmanager version

alertmanager, version 0.28.1 (branch: HEAD, revision: b2099eaa2c9ebc25edb26517cb9c732738e93910)
  build user:       root@fa3ca569dfe4
  build date:       20250307-15:05:18
  go version:       go1.23.7
  platform:         linux/amd64
  tags:             netgo

Alertmanager configuration file

Prometheus version


Prometheus configuration file

Logs


Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    To triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions