Skip to content

Releases: OpenOSINT/OpenOSINT

v2.28.2

Choose a tag to compare

@github-actions github-actions released this 14 Sep 18:51

What's Changed

Full Changelog: v2.28.1...v2.28.2

v2.28.1

Choose a tag to compare

@github-actions github-actions released this 14 Sep 18:43

What's Changed

  • ci: make release failures visible instead of silently succeeding by @SonoTommy in #58

Full Changelog: v2.28.0...v2.28.1

v2.28.0

Choose a tag to compare

@SonoTommy SonoTommy released this 13 Sep 15:35

[2.28.0] — 2026-09-13

Changed — BREAKING

  • Web UI: locally-held provider keys are now gated by bind address, not an
    env var.
    Previously, whether a request could use a key from your .env
    depended on OPENOSINT_DEMO_MODE, which defaulted to off — meaning a
    server bound to a non-loopback interface used your keys for any caller
    unless you remembered to set that variable. It's now a network-exposure
    invariant: bound to 127.0.0.1/localhost, keys work as before, no
    change needed. Bound to anything else (--host 0.0.0.0 with
    --allow-remote, or an undeterminable bind address) — your keys are
    never used to serve a request; callers must supply their own, and
    search_breach is disabled outright regardless of key source.
    OPENOSINT_DEMO_MODE still exists but can now only add restriction, never
    remove it. If you were exposing the web UI on your LAN and relying on
    your own .env keys with no other authentication in front of it, that no
    longer works
    — see the README's Web UI section.
  • Cloud API: request logs no longer contain the target you queried.
    cloud/main.py's INFO-level root logger was letting every tool module's
    free-text log line (built for CLI/MCP debugging, and including the raw
    target) through. Cloud logging is now limited to a redacted customer
    identifier, tool name, elapsed time, and outcome status.
  • Web UI: a loopback bind behind a reverse proxy is no longer silently
    trusted.
    A request carrying proxy-forwarding headers
    (X-Forwarded-For/-Proto/-Host, Forwarded, CF-Connecting-IP) is
    now treated the same as a non-loopback bind — local keys withheld, breach
    blocked — unless the new OPENOSINT_TRUSTED_PROXY=true is set. This is a
    separate variable from TRUSTED_PROXY (rate-limit IP attribution only,
    a lower-stakes setting some self-hosters already have on) — see the
    README before setting it, including the note that doing so makes you the
    controller for anyone the proxy relays to this instance.

Deprecated

  • OPENOSINT_MODEL is deprecated in favor of ANTHROPIC_MODEL, consistent with OPENAI_MODEL. The old name still works and logs a one-time warning.

Fixed

  • .env was ignored with a regular pip install openosint. The CLI and web server looked for .env inside site-packages instead of the directory the command runs from. All entry points now share one loader:

    • CLI and web UI: $OPENOSINT_ENV_FILE, then .env searching upward from the current directory, then the repo root (source checkouts).
    • MCP server: $OPENOSINT_ENV_FILE, then the repo root, then the current directory, because MCP clients start it from an arbitrary directory.

    Real environment variables always win. [*] Loaded .env: <path> is printed to stderr. If OPENOSINT_ENV_FILE points to a missing file, OpenOSINT prints one error line and exits with code 2. Missing-key errors now say when no .env was found.

  • search_dorks_live: Bright Data failures showed a JSONDecodeError
    traceback instead of the actual error.
    Bright Data returns HTTP 200 at
    the API level even when the fetch failed, reporting the real outcome in
    x-brd-* response headers. These are now read and turned into a clear
    message, e.g. Bright Data 502 captcha: redirect location was rejected.
    Rate-limit and CAPTCHA failures add a hint about the 15-second block.
    There is no automatic retry: Bright Data blocks a repeated identical
    query for at least 15 seconds, and cataloged errors are not billed.

  • A failed dork no longer stops the scan or prints a traceback: it logs a
    warning, the remaining dorks run, and if all fail the summary lists the
    distinct error codes.

  • 401/403 responses now include Bright Data's own redacted body, with a
    specific hint when the API key has expired.

  • Result URLs are normalized: opaque Google /goto?url=... redirect
    tokens and snippet text leaking into the URL field are no longer shown
    as links. Unresolvable links render as (unresolved).

  • The Twitter dork is now grouped as ("{target}") (site:x.com OR site:twitter.com); the previous form let Google match either the
    quoted term or a site independently, returning unrelated results.

v2.27.0

Choose a tag to compare

@github-actions github-actions released this 26 Aug 09:51

Full Changelog: v2.26.0...v2.27.0

v2.26.0

Choose a tag to compare

@github-actions github-actions released this 25 Aug 18:16

What's Changed

Full Changelog: v2.25.0...v2.26.0

v2.25.1

Choose a tag to compare

@github-actions github-actions released this 24 Aug 11:36

What's Changed

Full Changelog: v2.25.0...v2.25.1

v2.23.1

Choose a tag to compare

@github-actions github-actions released this 14 Jul 18:45

Full Changelog: v2.23.0...v2.23.1

v2.25.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 10:14

What's Changed

  • refactor: trim dead code, fix IPv6 detection, dedupe regexes by @SonoTommy in #14
  • docs: add SECURITY.md with vulnerability reporting policy by @SonoTommy in #15
  • fix(security): require auth on /api/setup, allowlist keys, restrict b… by @SonoTommy in #16
  • docs: add Operator's Playbook references across README, CLI help, web… by @SonoTommy in #17
  • Refactor/ponytail cleanup by @SonoTommy in #18
  • Feat/cloud billing oauth and tools by @SonoTommy in #19
  • Feat/cloud billing oauth and tools by @SonoTommy in #20
  • docs: RapidProxy sponsor copy + Polar webhook debug harnesses by @SonoTommy in #21
  • chore: replace RapidProxy PNG logo with official SVG by @SonoTommy in #22
  • Feat/cloud billing oauth and tools by @SonoTommy in #23
  • docs: move RapidProxy full sponsor copy under the Sponsors grid by @SonoTommy in #24
  • feat: global upstream-proxy support for web-facing tools (HTTP/SOCKS5) by @SonoTommy in #26
  • fix(demo): separate Procfile.demo so security fix reaches demo deploy… by @SonoTommy in #27

New Contributors

Full Changelog: v2.23.0...v2.25.0

v2.23.0

Choose a tag to compare

@github-actions github-actions released this 18 Jun 06:48

What's Changed

Full Changelog: v2.21.0...v2.23.0

v2.21.0

Choose a tag to compare

@github-actions github-actions released this 14 Jun 07:30

Full Changelog: v2.19.1...v2.21.0