Skip to content

Query Log "Allow" button acts on the queried domain, not the CNAME target that caused the block #3823

Description

@akostibas

Versions

  • Core: v6.4.2
  • Web: v6.5
  • FTL: v6.6.2

Expected behavior

When a query is blocked because of deep CNAME inspection (the log row shows blocked <target>), the "Allow" button should let me unblock it — i.e. act on the CNAME target that actually triggered the block, or at least make clear that's what needs allow-listing.

Actual behavior

The "Allow" button POSTs the queried domain to /api/domains/allow/exact, not the CNAME target shown as the block reason. Because a blocked CNAME target is (correctly, by design) not overridden by an allow entry on the head domain, clicking "Allow" can never unblock the query — it just adds an inert allow entry for a domain that was never the problem. On a second click it also errors with UNIQUE constraint failed: domainlist.domain, domainlist.type, since the inert entry already exists.

The UI already knows the responsible domain — it renders it in the row (blocked thirdparty.bnc.lt) — so the button has the information it needs but acts on the wrong domain.

Steps to reproduce

  1. Query a domain that CNAMEs to a gravity-blocklisted domain. Example: dl.mail.express-scripts.com → CNAME → thirdparty.bnc.lt (on StevenBlack/hosts).
  2. In the Query Log the row shows blocked thirdparty.bnc.lt.
  3. Click Allow. It adds/attempts to add dl.mail.express-scripts.com — the query stays blocked, because thirdparty.bnc.lt is still on a blocklist.

Suggested fix

For CNAME-cloaked rows, either (a) offer to allow the CNAME target, ideally with a note that it may be shared tracking infrastructure, or (b) disable the per-row "Allow" and explain that the block originates from the CNAME target. The current button presents a one-click action that is structurally incapable of doing what it implies.

(Note: the confusing raw UNIQUE constraint message is separately being addressed in FTL#2878; this report is specifically about the button acting on the wrong domain.)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions