Skip to content

deps: monitor oapi-codegen/runtime bluemonday dependency via Iris #129

Closed

Description

@ericfitz

Summary

TMI has a transitive dependency on a retracted version of bluemonday (v1.0.25) through the dependency chain:

TMI
└── github.com/oapi-codegen/runtime@v1.1.2
    └── github.com/kataras/iris@v12.2.6-0.20230908161203 (old commit)
        └── github.com/microcosm-cc/bluemonday@v1.0.25 (retracted)

Security Risk Evaluation

Risk Level: NONE / Negligible

Finding 1: Retraction is NOT security-related

The bluemonday go.mod shows a blanket policy retraction, not a CVE or vulnerability fix:

retract [v1.0.0, v1.0.25] // Retract older versions as only latest is to be depended upon

Finding 2: TMI does not use bluemonday

  • go mod why github.com/microcosm-cc/bluemonday reports: "main module does not need package github.com/microcosm-cc/bluemonday"
  • No .go files in TMI import bluemonday
  • The package exists only in the module graph, not in the compiled binary

Finding 3: Dependency chain analysis

  • oapi-codegen/runtime@v1.1.2 lists bluemonday as // indirect
  • oapi-codegen/runtime doesn't directly import bluemonday either
  • It's a ghost dependency in the transitive go.mod from Iris

Finding 4: v1.0.26 changelog context

The v1.0.26 release notes state it updated golang.org/x/net for HTTP/2 rapid reset, but noted: "we do not implement a HTTP2 server and are not vulnerable"

Conclusion

The bluemonday v1.0.25 "vulnerability" is a false positive. The retraction is a maintainer preference for users to always use the latest version, not a security issue. Since TMI never imports or uses bluemonday code, there is zero runtime risk - the code is never compiled into the binary.

Dependabot alerts for this package can be safely acknowledged as false positives.


Upstream Tracking

Repository Issue/PR Status
oapi-codegen/runtime #73 OPEN - Request to update Iris
oapi-codegen/runtime #11 DRAFT/Abandoned - Renovate PR for Iris update

Resolution Path

This will be resolved when oapi-codegen/runtime updates their Iris dependency from v12.2.6-0.20230908161203 to v12.2.11+, which uses bluemonday@v1.0.27.

Action Items

  • Monitor oapi-codegen/runtime for new releases
  • Update oapi-codegen/runtime when a version with updated Iris is released
  • Close this issue once bluemonday is no longer flagged

References

Activity

  1. moved this to Todo in TMIon Feb 2, 2026
  2. changed the title [-]chore(deps): monitor oapi-codegen/runtime bluemonday dependency via Iris[/-] [+]dependencies: monitor oapi-codegen/runtime bluemonday dependency via Iris[/+] on Feb 11, 2026
  3. changed the title [-]dependencies: monitor oapi-codegen/runtime bluemonday dependency via Iris[/-] [+]dep: monitor oapi-codegen/runtime bluemonday dependency via Iris[/+] on Feb 20, 2026
  4. changed the title [-]dep: monitor oapi-codegen/runtime bluemonday dependency via Iris[/-] [+]build: monitor oapi-codegen/runtime bluemonday dependency via Iris[/+] on Mar 4, 2026
  5. changed the title [-]build: monitor oapi-codegen/runtime bluemonday dependency via Iris[/-] [+]deps: monitor oapi-codegen/runtime bluemonday dependency via Iris[/+] on Mar 4, 2026
  6. ericfitz commented on Mar 16, 2026

    @ericfitz
    OwnerAuthor

    Status Check (2026-03-15) — Closing

    Findings

    The original concern (retracted bluemonday v1.0.25 in the transitive dependency graph) is now effectively moot:

    1. TMI directly depends on bluemonday v1.0.27 (not retracted) — it is used in api/markdown_sanitizer.go for HTML sanitization of markdown content fields.
    2. oapi-codegen/runtime@v1.2.0 still transitively references bluemonday v1.0.25, but Go's Minimum Version Selection (MVS) resolves to v1.0.27 due to TMI's direct dependency.
    3. The retracted v1.0.25 is never compiled into the binary.

    Upstream status

    Resolution

    Since TMI directly depends on bluemonday v1.0.27, the retracted transitive reference is cosmetic and poses zero runtime or security risk. Closing this issue as resolved.

  7. moved this from Todo to Done in TMIon Mar 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency file

    Projects

    • Status
      Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions