CRIT
SEC084
[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules — eq…
scripts/post-web-build.js:12
CRIT
SEC022
[SEC022] Database URL With Embedded Credential: A database connection URL contains an emb…
dev-env/dev-infra/_common.sh:29
CRIT
DKC007
Compose service contains a literal secret environment value
dev-env/dev-infra/docker-compose.yaml:17
CRIT
DKC007
Compose service contains a literal secret environment value
dev-env/dev-infra/docker-compose.yaml
HIGH
SEC040
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML w…
src/screens/Search/utils.ts:39
HIGH
SEC083
[SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can c…
src/view/com/composer/text-input/web/Ta…:62
HIGH
SEC083
[SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can c…
src/logger/index.tsx:75
HIGH
MINED028
[MINED028] Ts Ignore Comment: // @ts-ignore silences all type errors on the next line.
src/components/forms/InputGroup.tsx:28
HIGH
SEC033
[SEC033] Prototype Pollution — unfiltered merge of user object: Merging user-controlled o…
src/components/Post/Embed/ExternalEmbed…:200
HIGH
SEC033
[SEC033] Prototype Pollution — unfiltered merge of user object: Merging user-controlled o…
src/components/Post/Embed/ExternalEmbed…:57
HIGH
MINED004
[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
scripts/bundleUpdate.js:20
HIGH
SEC114
[SEC114] path.join / Path() on user-controlled segment without containment check: filepat…
plugins/notificationsExtension/withExte…:10
HIGH
SEC114
[SEC114] path.join / Path() on user-controlled segment without containment check: filepat…
plugins/notificationsExtension/withExte…:8
HIGH
MINED029
[MINED029] Kotlin Null Bang: x!! throws NullPointerException if x is null. Bypasses Kotli…
modules/expo-bluesky-swiss-army/android…:52
HIGH
SEC128
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call …
modules/bottom-sheet/ios/SheetView.swift:86
HIGH
SEC128
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call …
bskyogcard/src/bin.ts:32
HIGH
SEC128
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call …
bskylink/src/cache/safelinkClient.ts:144
HIGH
SEC085
[SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in…
src/state/gallery.ts:112
HIGH
SEC085
[SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in…
src/components/dialogs/Embed.tsx:224
HIGH
SEC085
[SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in…
bskyembed/src/screens/landing.tsx:311
HIGH
SEC029
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT…
bskylink/src/config.ts:88
HIGH
SEC029
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT…
bskylink/src/cache/safelinkClient.ts:52
HIGH
SEC029
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT…
bskyembed/src/screens/landing.tsx:62
HIGH
DKR014
Dockerfile copies the entire context without .dockerignore
Dockerfile.embedr:22
HIGH
DKR014
Dockerfile copies the entire context without .dockerignore
Dockerfile:43
HIGH
MINED115
[MINED115] Action `pnpm/action-setup` pinned to mutable ref `@v6`: `uses: pnpm/action-set…
.github/workflows/bundle-deploy-eas-upd…:320
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout…
.github/workflows/bundle-deploy-eas-upd…:317
HIGH
MINED115
[MINED115] Action `actions/cache` pinned to mutable ref `@v5`: `uses: actions/cache@v5` r…
.github/workflows/bundle-deploy-eas-upd…:285
HIGH
MINED115
[MINED115] Action `actions/cache` pinned to mutable ref `@v5`: `uses: actions/cache@v5` r…
.github/workflows/bundle-deploy-eas-upd…:202
HIGH
MINED115
[MINED115] Action `maxim-lobanov/setup-cocoapods` pinned to mutable ref `@v1`: `uses: max…
.github/workflows/bundle-deploy-eas-upd…:197
HIGH
MINED115
[MINED115] Action `maxim-lobanov/setup-xcode` pinned to mutable ref `@v1`: `uses: maxim-l…
.github/workflows/bundle-deploy-eas-upd…:191
HIGH
MINED115
[MINED115] Action `expo/expo-github-action` pinned to mutable ref `@v9`: `uses: expo/expo…
.github/workflows/bundle-deploy-eas-upd…:183
HIGH
MINED115
[MINED115] Action `actions/setup-node` pinned to mutable ref `@v6`: `uses: actions/setup-…
.github/workflows/bundle-deploy-eas-upd…:177
HIGH
MINED115
[MINED115] Action `pnpm/action-setup` pinned to mutable ref `@v6`: `uses: pnpm/action-set…
.github/workflows/bundle-deploy-eas-upd…:173
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout…
.github/workflows/bundle-deploy-eas-upd…:170
HIGH
MINED115
[MINED115] Action `actions/cache` pinned to mutable ref `@v5`: `uses: actions/cache@v5` r…
.github/workflows/bundle-deploy-eas-upd…:140
HIGH
MINED115
[MINED115] Action `dcarbone/install-jq-action` pinned to mutable ref `@v2`: `uses: dcarbo…
.github/workflows/bundle-deploy-eas-upd…:99
HIGH
MINED115
[MINED115] Action `expo/expo-github-action` pinned to mutable ref `@v9`: `uses: expo/expo…
.github/workflows/bundle-deploy-eas-upd…:90
HIGH
MINED115
[MINED115] Action `bluesky-social/github-actions/fingerprint-native` pinned to mutable re…
.github/workflows/bundle-deploy-eas-upd…:69
HIGH
MINED115
[MINED115] Action `actions/setup-node` pinned to mutable ref `@v6`: `uses: actions/setup-…
.github/workflows/bundle-deploy-eas-upd…:62
HIGH
MINED115
[MINED115] Action `pnpm/action-setup` pinned to mutable ref `@v6`: `uses: pnpm/action-set…
.github/workflows/bundle-deploy-eas-upd…:58
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout…
.github/workflows/bundle-deploy-eas-upd…:51
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout…
.github/workflows/build-and-push-embedr…:25
HIGH
MINED115
[MINED115] Action `actions/setup-node` pinned to mutable ref `@v6`: `uses: actions/setup-…
.github/workflows/verify-pnpm-lock.yml:27
HIGH
MINED115
[MINED115] Action `pnpm/action-setup` pinned to mutable ref `@v6`: `uses: pnpm/action-set…
.github/workflows/verify-pnpm-lock.yml:23
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout…
.github/workflows/verify-pnpm-lock.yml:15
HIGH
MINED115
[MINED115] Action `actions/setup-go` pinned to mutable ref `@v6`: `uses: actions/setup-go…
.github/workflows/golang-test-lint.yml:38
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout…
.github/workflows/golang-test-lint.yml:36
HIGH
MINED115
[MINED115] Action `actions/setup-go` pinned to mutable ref `@v6`: `uses: actions/setup-go…
.github/workflows/golang-test-lint.yml:20
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v5`: `uses: actions/checkout…
.github/workflows/golang-test-lint.yml:18
HIGH
MINED118
[MINED118] Dockerfile FROM `debian:bookworm-slim` not pinned by digest: `FROM debian:book…
Dockerfile.embedr:64
HIGH
MINED118
[MINED118] Dockerfile FROM `golang:1.26-bookworm` not pinned by digest: `FROM golang:1.26…
Dockerfile.embedr:1
HIGH
MINED118
[MINED118] Dockerfile FROM `debian:bookworm-slim` not pinned by digest: `FROM debian:book…
Dockerfile:100
HIGH
MINED118
[MINED118] Dockerfile FROM `golang:1.26-bookworm` not pinned by digest: `FROM golang:1.26…
Dockerfile:70
HIGH
MINED118
[MINED118] Dockerfile FROM `ghcr.io/pnpm/pnpm:11` not pinned by digest: `FROM ghcr.io/pnp…
Dockerfile:7
HIGH
MINED118
[MINED118] Dockerfile FROM `node:24.15.0-alpine3.22` not pinned by digest: `FROM node:24.…
Dockerfile.bskylink:17
HIGH
MINED118
[MINED118] Dockerfile FROM `node:24.15.0-alpine3.22` not pinned by digest: `FROM node:24.…
Dockerfile.bskylink:1
HIGH
MINED122
[MINED122] package.json dep `eslint-plugin-bsky-internal` pulled from URL/Git: `devDepend…
package.json:1
HIGH
MINED118
[MINED118] Dockerfile FROM `node:24.15.0-alpine3.22` not pinned by digest: `FROM node:24.…
Dockerfile.bskyogcard:22
HIGH
MINED118
[MINED118] Dockerfile FROM `node:24.15.0-alpine3.22` not pinned by digest: `FROM node:24.…
Dockerfile.bskyogcard:1
HIGH
DKC013
Database service has no persistent data volume
dev-env/dev-infra/docker-compose.yaml
HIGH
DKC011
Database service publishes a host port
dev-env/dev-infra/docker-compose.yaml:37
HIGH
DKC011
Database service publishes a host port
dev-env/dev-infra/docker-compose.yaml:17
HIGH
DKC011
Database service publishes a host port
dev-env/dev-infra/docker-compose.yaml
HIGH
MINED113
[MINED113] Express POST /link has no auth: Express route POST /link declared without an a…
bskylink/src/routes/createShortLink.ts:12
MED
SEC134
[SEC134] AI scaffold leftover — Lorem ipsum / example.com / John Doe in code: Lorem ipsum…
src/view/screens/Storybook/Forms.tsx:63
MED
SEC112
[SEC112] Go html/template bypass — text/template used for HTML output, or template.HTML o…
bskyweb/cmd/embedr/snippet.go:61
MED
SEC091
[SEC091] Go: net/http server without timeouts: HTTP server without ReadHeaderTimeout/Read…
bskyweb/cmd/embedr/server.go:78
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
src/components/EmojiPicker/preload.web.…:26
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
src/Splash.tsx:175
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
bskylink/src/metrics.ts:135
MED
SEC045
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even …
src/state/gallery.ts:112
MED
SEC045
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even …
src/components/dialogs/Embed.tsx:224
MED
SEC045
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even …
bskyembed/src/screens/landing.tsx:311
MED
DKR017
Dockerfile installs dependencies after copying the full source tree
Dockerfile.embedr:33
MED
DKR007
Docker build context has no .dockerignore
.dockerignore
MED
DKR017
Dockerfile installs dependencies after copying the full source tree
Dockerfile:52
MED
DKR001
Docker final stage has no non-root USER
Dockerfile.embedr:65
MED
DKR001
Docker final stage has no non-root USER
Dockerfile:100
MED
DKR004
Docker build secret exposed through ARG
Dockerfile:38
MED
WEB015
Public web app has no Content Security Policy
index.html
LOW
SEC132
[SEC132] String concat where the language has interpolation (AI style drift): String buil…
eslint/avoid-unwrapped-text.js:97
LOW
AIC003
Duplicated implementation block across source files
src/components/Tooltip/index.web.tsx:102
LOW
AIC003
Duplicated implementation block across source files
src/components/StarterPack/Main/Profile…:66
LOW
AIC003
Duplicated implementation block across source files
src/components/ProgressGuide/FollowDial…:448
LOW
AIC003
Duplicated implementation block across source files
src/components/ProfileCard.tsx:324
LOW
AIC003
Duplicated implementation block across source files
src/components/Post/Embed/VideoEmbed/in…:61
LOW
AIC003
Duplicated implementation block across source files
src/components/Portal.tsx:41
LOW
AIC003
Duplicated implementation block across source files
src/components/Menu/types.ts:63
LOW
AIC003
Duplicated implementation block across source files
src/components/Menu/index.web.tsx:15
LOW
AIC003
Duplicated implementation block across source files
src/components/Lightbox/pager/ImageItem…:17
LOW
AIC003
Duplicated implementation block across source files
src/components/Lightbox/pager/ImageItem…:32
LOW
AIC003
Duplicated implementation block across source files
src/components/Lightbox/chrome/PagerDot…:13
LOW
AIC003
Duplicated implementation block across source files
src/components/Lightbox/chrome/CircleCh…:11
LOW
AIC003
Duplicated implementation block across source files
src/components/ContextMenu/Backdrop.tsx:31
LOW
AIC003
Duplicated implementation block across source files
src/App.web.tsx:57
LOW
AIC003
Duplicated implementation block across source files
plugins/shareExtension/withXcodeTarget.…:5
LOW
AIC003
Duplicated implementation block across source files
plugins/shareExtension/withExtensionVie…:1
LOW
AIC003
Duplicated implementation block across source files
plugins/shareExtension/withExtensionInf…:1
LOW
AIC003
Duplicated implementation block across source files
modules/expo-bluesky-swiss-army/android…:46
LOW
AIC003
Duplicated implementation block across source files
lingui.config.ts:14
LOW
AIC003
Duplicated implementation block across source files
bskyweb/cmd/embedr/server.go:43
LOW
AIC003
Duplicated implementation block across source files
bskyogcard/src/types/bsky/index.ts:4
LOW
AIC003
Duplicated implementation block across source files
bskyembed/src/icons/Repost.tsx:3
LOW
AIC003
Duplicated implementation block across source files
bskyembed/src/icons/Reply.tsx:3
LOW
DKR010
Dockerfile leaves apt package indexes in the image layer
Dockerfile.embedr:71
LOW
DKR010
Dockerfile leaves apt package indexes in the image layer
Dockerfile:106
LOW
WEB002
Public web app has no sitemap
sitemap.xml
LOW
DKR011
Dockerfile installs recommended OS packages
Dockerfile.embedr:71
LOW
DKR011
Dockerfile installs recommended OS packages
Dockerfile:106
LOW
WEB008
Public docs site has no llms.txt
llms.txt
LOW
WEB011
Public web app has no humans.txt
humans.txt
INFO
MINED045
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError …
src/components/dialogs/EmailDialog/scre…:152
INFO
MINED045
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError …
src/components/WhoCanReply.tsx:287
INFO
MINED045
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError …
src/analytics/index.tsx:134
INFO
MINED054
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
src/components/DraggableList/index.web.…:134
INFO
MINED054
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
src/components/Composer/index.tsx:356
INFO
MINED054
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
src/alf/util/flatten.ts:31
INFO
MINED052
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
src/components/Dialog/index.web.tsx:47
INFO
MINED052
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
src/analytics/metrics/client.ts:97
INFO
MINED052
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
modules/expo-bluesky-swiss-army/src/Sha…:46
INFO
MINED060
[MINED060] Go Context No Cancel: context.Background() at request handler boundary leaks g…
bskyweb/cmd/embedr/server.go:257
INFO
MINED056
[MINED056] React Key As Index: key={index} in map() — re-renders the wrong elements on re…
src/alf/typography.tsx:104
INFO
MINED056
[MINED056] React Key As Index: key={index} in map() — re-renders the wrong elements on re…
bskyogcard/src/components/StarterPack.t…:75
INFO
MINED056
[MINED056] React Key As Index: key={index} in map() — re-renders the wrong elements on re…
bskyogcard/src/components/AvatarBubbles…:61
INFO
MINED043
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr…
src/screens/Signup/StepInfo/Policies.tsx:97
INFO
MINED043
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr…
src/components/dialogs/ServerInput.tsx:103
INFO
MINED043
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr…
bskylink/src/routes/createShortLink.ts:82
INFO
MINED044
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger …
bskylink/src/bin.ts:60
INFO
MINED044
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger …
bskyembed/src/screens/post.tsx:63
INFO
MINED044
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger …
bskyembed/src/screens/landing.tsx:88