GitHub Advisoryadvisory · Go

GHSA-4q9j-6299-gxmr Dragonfly Manager OAuth provider client_secret disclosure via unauthenticated GET /api/v1/oauth

LOW Published 2026-07-02 Modified 2026-07-02 Official page ↗
Aliases
CVE-2026-49254
Ecosystem
Go
Packages
d7y.io/dragonfly/v2
Severity
Low
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:P
Weaknesses
CWE-200, CWE-306
Reviewed
2026-07-02

Affected packages

• Go d7y.io/dragonfly/v2: < 2.4.4 → fixed in 2.4.4

Description

Summary The Dragonfly Manager exposes `GET /api/v1/oauth` and `GET /api/v1/oauth/:id` to unauthenticated clients. The response body deserializes the entire `manager/models.Oauth` struct, which includes the `client_secret` field. Any network-reachable attacker can read the OAuth client secrets configured for `github` or `google` providers, defeating the confidentiality guarantee of those secrets and enabling subsequent abuse against the connected identity providers. Affected versions `github.com/dragonflyoss/dragonfly` ` /Users/rick/df2-poc/docker-compose.yaml <<'YAML' services: redis: image: redis:6-alpine container_name: dragonfly-redis command: --requirepass dragonfly mysql: image: mariadb:10.6 container_name: dragonfly-mysql environment: • MARIADB_USER=dragonfly • MARIADB_PASSWORD=dragonfly • MARIADB_DATABASE=manager • MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=yes manager: image: dragonflyoss/manager:v2.4.3 container_name: dragonfly-manager depends_on: [redis, mysql] restart: on-failure volumes: • ./config/manager.yaml:/etc/dragonfly/manager.yaml:ro ports: • "18080:8080" YAML docker compose -f /Users/rick/df2-poc/docker-compose.yaml up -d until curl -fsS -o /dev/null http://localhost:18080/healthy; do sleep 2; done ``` Bootstrap one administrator and register an OAuth provider whose secret we plant as a sentinel: ```bash Sign up + promote to root…

Related

Alias · CVE (1)

  • CVE-2026-49254 Dragonfly is an open source P2P-based file distribution and image acceleration system. vulnerability

Weakness · CWE (2)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness
  • CWE-306 Missing Authentication for Critical Functionality weakness

References