← Back to scan
File as GitHub Issue repo: firecrawl/firecrawl

Push this scan report to firecrawl/firecrawl

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

Dockerfile copies the entire context without .dockerignore

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
CRIT DKC007 Compose service contains a literal secret environment value docker-compose.yaml:150
CRIT DKC007 Compose service contains a literal secret environment value docker-compose.yaml:88
HIGH DKR014 Dockerfile copies the entire context without .dockerignore apps/playwright-service-ts/Dockerfile:7
HIGH DKR014 Dockerfile copies the entire context without .dockerignore apps/go-html-to-md-service/Dockerfile:17
HIGH DKR014 Dockerfile copies the entire context without .dockerignore apps/api/Dockerfile:40
HIGH DKR006 Dockerfile pipes a remote script into a shell apps/api/Dockerfile:35
HIGH QUAL007 Imported but never used /tank0/claude-archive/opus47/firecrawl_…:2
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/e2e…:51
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/e2e…:41
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/e2e…:36
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/uni…:74
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/uni…:69
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/uni…:60
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/uni…:52
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/uni…:44
HIGH TEST001 Phantom test coverage — test files without real assertions apps/python-sdk/firecrawl/__tests__/uni…:21
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v2/utils/vali…:426
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v2/utils/vali…:417
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v2/utils/vali…:362
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v2/watcher_as…:79
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v2/watcher.py:78
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v2/watcher.py:65
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v2/watcher.py:257
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v1/client.py:3201
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/v1/client.py:3192
HIGH SUPC001 Supply chain — curl | bash anti-pattern apps/api/Dockerfile:24
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/__tests__/e2e…:71
HIGH ERRH001 Bare except: pass — silent failure apps/python-sdk/firecrawl/__tests__/e2e…:63
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… apps/python-sdk/firecrawl/v2/watcher.py:65
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… apps/python-sdk/firecrawl/v2/watcher_as…:79
MED ERR001 [ERR001] Silent Exception Swallowing: Silently swallowing all exceptions hides bugs. Even… apps/python-sdk/firecrawl/v1/client.py:3265
MED ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors. apps/api/src/controllers/v1/map.ts:154
MED ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors. apps/api/src/controllers/v0/crawl.ts:219
MED ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors. apps/api/src/services/redis.ts:14
MED DKR003 Dockerfile base image uses the latest tag apps/go-html-to-md-service/Dockerfile:23
MED DKR007 Docker build context has no .dockerignore .dockerignore
MED DKR017 Dockerfile installs dependencies after copying the full source tree apps/api/Dockerfile:43
MED QUAL003 Magic number used as default arg apps/api/src/scraper/scrapeURL/transfor…:58
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/methods/ai…:124
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/methods/ai…:66
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/methods/br…:118
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/methods/br…:67
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/client.py:1108
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/client.py:1077
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/client_asy…:561
MED QUAL003 Magic number used as default arg apps/python-sdk/firecrawl/v2/client_asy…:530
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:240
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:345
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:247
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:89
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:67
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:38
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:99
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:79
MED ERRH002 Bare except — overly broad /tank0/claude-archive/opus47/firecrawl_…:47
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/native/src/html.rs:767
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/native/src/html.rs:86
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/native/src/html.rs:85
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/extraction-ser…:1058
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/branding/merge.ts:78
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.ts:200
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.ts:137
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.ts:54
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.ts:24
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/services/agentLivecastWS.ts:27
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/services/redlock.ts:11
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/services/ab-test.ts:46
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/engines/…:787
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/engines/…:751
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/engines/…:526
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/engines/…:199
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/engines/…:44
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/engines/…:27
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/rewr…:38
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/rewr…:30
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/rewr…:18
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/rewr…:6
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/extr…:32
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/extr…:30
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/error.ts:77
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/types.ts:37
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v2/types.ts:34
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/v2/methods/ba…:410
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/v2/methods/ba…:409
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/v2/watcher_as…:58
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/v2/watcher.py:84
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint docker-compose.yaml:27
MED DKR001 Docker final stage has no non-root USER apps/redis/Dockerfile:2
MED DKR001 Docker final stage has no non-root USER apps/playwright-service-ts/Dockerfile:1
MED DKR001 Docker final stage has no non-root USER apps/nuq-postgres/Dockerfile:4
MED DKR001 Docker final stage has no non-root USER apps/go-html-to-md-service/Dockerfile:23
MED DKR001 Docker final stage has no non-root USER apps/api/Dockerfile:55
MED DKC013 Database service has no persistent data volume docker-compose.yaml:132
MED DKC013 Database service has no persistent data volume docker-compose.yaml:115
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/v0/scrape.…:47
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/mocks/mock…:8
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/v2/scrape.…:177
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/v2/types-v…:998
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/v2/map.tes…:133
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/v1/scrape.…:144
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/v1/types-v…:691
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/snips/wikipedia-…:296
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/lib/search-query…:131
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/e2e_v1_withAuth/…:163
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/__tests__/e2e_v1_withAuth_…:8
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:284
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:249
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:245
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:222
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:183
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:175
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:20
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/extract/helpers/__test…:16
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/__tests__/html-transfo…:481
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/__tests__/html-transfo…:463
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:114
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:108
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:102
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:99
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:96
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:93
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:90
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:85
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:82
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/permu-refactor.test.ts:79
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:78
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:72
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:71
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:64
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:63
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:56
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:45
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:37
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:16
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/validateUrl.test.ts:6
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:42
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:41
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:40
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:28
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:26
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:23
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:22
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:21
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:20
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/lib/crawl-redis.test.ts:19
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/__te…:35
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/scraper/scrapeURL/lib/__te…:33
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:62
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:57
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:52
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:51
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:45
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:42
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:41
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:32
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:28
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/api/src/controllers/v1/__tests__/u…:9
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/__tests__/uni…:8
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/__tests__/uni…:7
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/__tests__/uni…:18
MED CRYP001 Crypto — plaintext HTTP for sensitive endpoint apps/python-sdk/firecrawl/__tests__/uni…:17
LOW QUAL005 Cluster of TODOs in one file apps/api/src/scraper/scrapeURL/transfor…:1075
LOW QUAL004 Placeholder default username (admin/admin) apps/api/src/lib/__tests__/merge-null-v…:88
LOW QUAL004 Placeholder default username (admin/admin) apps/api/src/lib/__tests__/merge-null-v…:72
LOW DKC015 Database service has no healthcheck docker-compose.yaml:115
LOW DKR011 Dockerfile installs recommended OS packages apps/api/Dockerfile:58
LOW DKR011 Dockerfile installs recommended OS packages apps/api/Dockerfile:23
LOW DKC016 App service does not wait for database health docker-compose.yaml:88
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yaml:150
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yaml:88
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yaml:59
LOW DKC010 Compose service lacks no-new-privileges hardening apps/go-html-to-md-service/docker-compo…:3
LOW DKC006 Compose service does not declare a runtime user docker-compose.yaml:150
LOW DKC006 Compose service does not declare a runtime user docker-compose.yaml:88
LOW DKC006 Compose service does not declare a runtime user docker-compose.yaml:59
LOW DKC006 Compose service does not declare a runtime user apps/go-html-to-md-service/docker-compo…:3
Reset to top 5 176 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `firecrawl/firecrawl`

**Score: 62/100 (B)**  ·  188 findings  ·  scanned 2026-05-15 17:13 UTC  ·  228,899 LOC

| Severity | Count |
|---|---|
| CRITICAL | 2 |
| HIGH | 26 |
| MEDIUM | 133 |
| LOW | 15 |

📊 [Full filterable report](https://repobility.com/scan/46112e33-01b1-4ede-b119-a5ba42a086d8/)  ·  ![scorecard](https://repobility.com/scan/46112e33-01b1-4ede-b119-a5ba42a086d8/report.png?v=1778865232-s2)

### Top findings

1. **CRITICAL** `DKC007` — Compose service contains a literal secret environment value
   `docker-compose.yaml:150`
2. **CRITICAL** `DKC007` — Compose service contains a literal secret environment value
   `docker-compose.yaml:88`
3. **HIGH** `DKR014` — Dockerfile copies the entire context without .dockerignore
   `apps/playwright-service-ts/Dockerfile:7`
4. **HIGH** `DKR014` — Dockerfile copies the entire context without .dockerignore
   `apps/go-html-to-md-service/Dockerfile:17`
5. **HIGH** `DKR014` — Dockerfile copies the entire context without .dockerignore
   `apps/api/Dockerfile:40`

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/46112e33-01b1-4ede-b119-a5ba42a086d8/_
Megaproject â high spam risk
Could not determine 'firecrawl/firecrawl' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.
Already filed
92/188 findings (49%) on this scan are already flagged as test-file, won't-fix, or suppressed. The scan is too noisy to file as a single issue. Curate down to specific actionable findings, or address the FP source first.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.