CRIT
MINED018
[MINED018] Unsafe Deserialization Pickle: pickle.loads / yaml.load (without Loader=SafeLo…
packages/tools/website/utils/frontMatte…:62
CRIT
SEC116
[SEC116] Ruby YAML.load / Marshal.load on untrusted input: `YAML.load` (pre-3.1) and `Mar…
packages/tools/website/utils/frontMatte…:62
CRIT
SEC079
[SEC079] Python: yaml.load without SafeLoader: yaml.load() without explicit SafeLoader ca…
packages/tools/website/utils/frontMatte…:62
CRIT
MINED024
[MINED024] Js Eval Usage: eval() executes arbitrary code. Code injection risk.
packages/app-mobile/components/Extended…:111
CRIT
MINED024
[MINED024] Js Eval Usage: eval() executes arbitrary code. Code injection risk.
packages/app-mobile/components/Extended…:24
CRIT
SEC084
[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules — eq…
packages/server/src/config.ts:15
CRIT
SEC084
[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules — eq…
packages/plugins/ToggleSidebars/webpack…:28
CRIT
SEC084
[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules — eq…
packages/editor/CodeMirror/pluginApi/co…:50
HIGH
MINED027
[MINED027] React State Array Mutation: state.X.push/splice/sort followed by setState — Re…
packages/tools/website/utils/applyTrans…:87
HIGH
SEC035
[SEC035] Unbounded Resource Allocation — DoS risk: Allocating resources (buffers, recursi…
packages/server/src/utils/strings.ts:28
HIGH
SEC135
[SEC135] Auth/permission check missing on AI-generated endpoint: Mutating HTTP endpoint g…
packages/server/src/routes/api/batch.ts:69
HIGH
SEC135
[SEC135] Auth/permission check missing on AI-generated endpoint: Mutating HTTP endpoint g…
packages/server/src/routes/admin/user_d…:124
HIGH
SEC135
[SEC135] Auth/permission check missing on AI-generated endpoint: Mutating HTTP endpoint g…
packages/server/src/routes/admin/tasks.…:19
HIGH
MINED039
[MINED039] Rust Todo Macro: todo!() panics when reached. Unimplemented code path.
packages/onenote-converter/parser/src/l…:58
HIGH
MINED003
[MINED003] Rust Unwrap In Prod: .unwrap() panics if None/Err. Acceptable in tests; risky …
packages/onenote-converter/parser-utils…:47
HIGH
MINED003
[MINED003] Rust Unwrap In Prod: .unwrap() panics if None/Err. Acceptable in tests; risky …
packages/onenote-converter/parser-utils…:117
HIGH
MINED003
[MINED003] Rust Unwrap In Prod: .unwrap() panics if None/Err. Acceptable in tests; risky …
packages/onenote-converter/parser-utils…:90
HIGH
MINED041
[MINED041] Rust Unimplemented Macro: unimplemented!() panics. Same as todo!() but convent…
packages/onenote-converter/parser-macro…:157
HIGH
SEC040
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML w…
packages/editor/CodeMirror/utils/markdo…:204
HIGH
SEC040
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML w…
packages/app-mobile/components/screens/…:104
HIGH
SEC128
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call …
packages/app-desktop/utils/customProtoc…:280
HIGH
SEC128
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call …
packages/app-desktop/tools/generateLate…:15
HIGH
SEC128
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call …
packages/app-desktop/gui/ResourceScreen…:242
HIGH
SEC027
[SEC027] XML External Entity (XXE) — Node.js xml parsers: Node.js XML parsers can expand …
packages/app-mobile/tools/buildInjected…:73
HIGH
SEC027
[SEC027] XML External Entity (XXE) — Node.js xml parsers: Node.js XML parsers can expand …
packages/app-desktop/gui/Root.tsx:75
HIGH
SEC027
[SEC027] XML External Entity (XXE) — Node.js xml parsers: Node.js XML parsers can expand …
packages/app-desktop/gui/NoteEditor/uti…:76
HIGH
SEC085
[SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in…
packages/app-desktop/gui/NoteEditor/Not…:36
HIGH
SEC085
[SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in…
packages/app-desktop/gui/NoteEditor/Not…:46
HIGH
SEC085
[SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived in…
packages/app-desktop/gui/NoteEditor/Not…:27
HIGH
SEC083
[SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can c…
packages/app-mobile/services/voiceTypin…:67
HIGH
SEC083
[SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can c…
packages/app-desktop/gui/NoteEditor/Not…:34
HIGH
SEC083
[SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can c…
packages/app-desktop/gui/NoteEditor/Not…:117
HIGH
MINED004
[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
packages/app-desktop/gui/NoteEditor/uti…:21
HIGH
MINED004
[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
packages/app-desktop/InteropServiceHelp…:15
HIGH
MINED004
[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
packages/app-cli/app/command-sync.ts:14
HIGH
SEC029
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT…
packages/app-cli/app/command-sync.ts:112
HIGH
SEC029
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT…
packages/app-cli/app/command-publish.ts:59
HIGH
SEC029
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT…
packages/app-cli/app/command-geoloc.ts:21
HIGH
DKR006
Dockerfile pipes a remote script into a shell
Dockerfile.transcribe.gpu:28
HIGH
MINED134
[MINED134] Binary file `packages/app-mobile/android/gradle/wrapper/gradle-wrapper.jar` co…
packages/app-mobile/android/gradle/wrap…:1
HIGH
MINED134
[MINED134] Binary file `packages/tools/PortableAppsLauncher/JoplinPortable.exe` committed…
packages/tools/PortableAppsLauncher/Jop…:1
HIGH
MINED134
[MINED134] Binary file `packages/react-native-saf-x/android/wrapper/gradle-wrapper.jar` c…
packages/react-native-saf-x/android/wra…:1
HIGH
MINED115
[MINED115] Action `actions/setup-python` pinned to mutable ref `@v6`: `uses: actions/setu…
.github/workflows/shared/setup-build-en…:74
HIGH
MINED115
[MINED115] Action `actions/setup-node` pinned to mutable ref `@v6`: `uses: actions/setup-…
.github/workflows/shared/setup-build-en…:54
HIGH
MINED115
[MINED115] Action `dtolnay/rust-toolchain` pinned to mutable ref `@stable`: `uses: dtolna…
.github/workflows/shared/setup-build-en…:52
HIGH
MINED115
[MINED115] Action `olegtarasov/get-tag` pinned to mutable ref `@v2.1.4`: `uses: olegtaras…
.github/workflows/shared/setup-build-en…:50
HIGH
MINED115
[MINED115] Action `actions/setup-python` pinned to mutable ref `@v6`: `uses: actions/setu…
.github/workflows/build-macos-m1.yml:30
HIGH
MINED115
[MINED115] Action `actions/setup-node` pinned to mutable ref `@v6`: `uses: actions/setup-…
.github/workflows/build-macos-m1.yml:13
HIGH
MINED115
[MINED115] Action `olegtarasov/get-tag` pinned to mutable ref `@v2.1.4`: `uses: olegtaras…
.github/workflows/build-macos-m1.yml:12
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout…
.github/workflows/build-macos-m1.yml:10
HIGH
MINED115
[MINED115] Action `actions/upload-artifact` pinned to mutable ref `@v4`: `uses: actions/u…
.github/workflows/ui-tests.yml:40
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout…
.github/workflows/ui-tests.yml:15
HIGH
MINED115
[MINED115] Action `actions/create-github-app-token` pinned to mutable ref `@v2`: `uses: a…
.github/workflows/delete-coderabbit-com…:38
HIGH
MINED115
[MINED115] Action `actions/github-script` pinned to mutable ref `@v8`: `uses: actions/git…
.github/workflows/check-pr-title.yml:24
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout…
.github/workflows/check-pr-title.yml:18
HIGH
MINED115
[MINED115] Action `quipper/comment-failure-action` pinned to mutable ref `@v0.1.1`: `uses…
.github/workflows/comment-on-failure.yml:14
HIGH
MINED115
[MINED115] Action `contributor-assistant/github-action` pinned to mutable ref `@v2.6.1`: …
.github/workflows/cla.yml:16
HIGH
MINED115
[MINED115] Action `actions/setup-node` pinned to mutable ref `@v6`: `uses: actions/setup-…
.github/workflows/github-actions-main.y…:152
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout…
.github/workflows/github-actions-main.y…:150
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout…
.github/workflows/github-actions-main.y…:15
HIGH
MINED115
[MINED115] Action `actions/stale` pinned to mutable ref `@v9`: `uses: actions/stale@v9` r…
.github/workflows/close-stale-issues.yml:12
HIGH
MINED115
[MINED115] Action `actions/setup-node` pinned to mutable ref `@v6`: `uses: actions/setup-…
.github/workflows/build-android.yml:39
HIGH
MINED115
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout…
.github/workflows/build-android.yml:37
HIGH
MINED115
[MINED115] Action `actions/setup-java` pinned to mutable ref `@v5`: `uses: actions/setup-…
.github/workflows/build-android.yml:32
HIGH
MINED118
[MINED118] Dockerfile FROM `node:24-slim` not pinned by digest: `FROM node:24-slim` resol…
Dockerfile.server:65
HIGH
MINED118
[MINED118] Dockerfile FROM `node:24` not pinned by digest: `FROM node:24` resolves the ta…
Dockerfile.server:4
HIGH
MINED118
[MINED118] Dockerfile FROM `node:24-bookworm` not pinned by digest: `FROM node:24-bookwor…
Dockerfile.transcribe:1
HIGH
MINED118
[MINED118] Dockerfile FROM `nvidia/cuda:13.1.1-cudnn-runtime-ubuntu22.04` not pinned by d…
Dockerfile.transcribe.gpu:26
HIGH
MINED118
[MINED118] Dockerfile FROM `ghcr.io/ggml-org/llama.cpp:full-cuda-b5449` not pinned by dig…
Dockerfile.transcribe.gpu:23
HIGH
JRN009
Secret-like setting is echoed into a password input value
packages/app-desktop/gui/EncryptionConf…:188
HIGH
JRN004
Consent is collected in UI without visible backend audit persistence
packages/app-mobile/utils/fs-driver/fs-…:201
MED
SEC007
[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.
packages/tools/website/utils/frontMatte…:62
MED
SEC136
[SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all excepti…
packages/app-mobile/components/screens/…:18
MED
SEC107
[SEC107] Weak TLS version requested (TLSv1.0, TLSv1.1, SSLv3, SSLv2): TLS 1.0 and 1.1 wer…
packages/app-mobile/android/app/src/mai…:31
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
packages/turndown/src/html-parser.js:22
MED
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
packages/app-desktop/integration-tests/…:60
MED
SEC015
[SEC015] Insecure Randomness for Security: Weak PRNG used in security-sensitive context. …
packages/app-desktop/gui/OneDriveLoginS…:40
MED
SEC041
[SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer": <a target="_blan…
packages/app-mobile/commands/util/showR…:16
MED
SEC041
[SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer": <a target="_blan…
packages/app-desktop/gui/NewWindowOrIFr…:46
MED
SEC087
[SEC087] JS: weak Math.random for crypto: Math.random() is not cryptographically secure; …
packages/app-desktop/gui/OneDriveLoginS…:40
MED
SEC087
[SEC087] JS: weak Math.random for crypto: Math.random() is not cryptographically secure; …
packages/app-desktop/gui/NoteEditor/uti…:214
MED
SEC087
[SEC087] JS: weak Math.random for crypto: Math.random() is not cryptographically secure; …
packages/app-desktop/gui/DialogButtonRo…:14
MED
SEC046
[SEC046] Client-side open redirect — window.location = server-supplied URL: Assigning win…
Assets/WebsiteAssets/js/script.js:160
MED
SEC045
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even …
packages/app-desktop/gui/NoteEditor/Not…:27
MED
SEC045
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even …
packages/app-cli/app/command-testing.ts:110
MED
SEC045
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even …
Assets/TinyMCE/JoplinLists/src/main/ts/…:62
MED
DKR018
Database dump or local database file is included in Docker build context
.dockerignore
MED
AIC001
Parallel implementation file sits beside a canonical file
packages/server/src/models/ChangeModel/…:1
MED
AIC001
Parallel implementation file sits beside a canonical file
packages/server/src/models/ChangeModel/…:1
MED
JRN005
Compliance or security claim is near a placeholder link
packages/app-desktop/gui/EncryptionConf…:228
MED
JRN005
Compliance or security claim is near a placeholder link
packages/app-desktop/gui/ConfigScreen/c…:20
LOW
SEC132
[SEC132] String concat where the language has interpolation (AI style drift): String buil…
packages/react-native-alarm-notificatio…:24
LOW
SEC132
[SEC132] String concat where the language has interpolation (AI style drift): String buil…
packages/app-mobile/components/NoteEdit…:115
LOW
SEC132
[SEC132] String concat where the language has interpolation (AI style drift): String buil…
packages/app-mobile/components/NoteEdit…:140
LOW
AIC003
Duplicated implementation block across source files
packages/app-desktop/gui/OneDriveLoginS…:71
LOW
AIC003
Duplicated implementation block across source files
packages/app-desktop/gui/NoteEditor/Not…:154
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/tr_TR.js:2
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/ta_IN.js:2
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/sl_SI.js:2
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/sk.js:97
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/ro_RO.js:2
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/pt_PT.js:30
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/nb_NO.js:30
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/it_IT.js:2
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/hr.js:97
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/gl.js:129
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/fa_IR.js:2
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/es_MX.js:361
LOW
AIC003
Duplicated implementation block across source files
Assets/TinyMCE/langs/es_ES.js:2
LOW
DKR011
Dockerfile installs recommended OS packages
Dockerfile.transcribe.gpu:28
LOW
DKR011
Dockerfile installs recommended OS packages
Dockerfile.transcribe:3
LOW
DKR008
.dockerignore misses sensitive defaults
.dockerignore
LOW
DKR011
Dockerfile installs recommended OS packages
Dockerfile.server:7
LOW
AIC005
Duplicate top-level symbol appears in a patch-style file
packages/server/src/models/ChangeModel/…:1
INFO
MINED055
[MINED055] Npm Install No Lockfile: Production image runs npm install (resolves new versi…
packages/tools/release-website.sh:35
INFO
MINED057
[MINED057] Todo Bomb: Code path with a TODO/FIXME/HACK comment that gates correctness — l…
packages/onenote-converter/parser/src/l…:58
INFO
MINED066
[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable error…
packages/onenote-converter/parser/src/s…:84
INFO
MINED066
[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable error…
packages/onenote-converter/parser/src/l…:53
INFO
MINED066
[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable error…
packages/onenote-converter/parser-macro…:63
INFO
MINED059
[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message.
packages/onenote-converter/parser/src/s…:124
INFO
MINED059
[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message.
packages/onenote-converter/parser/src/o…:104
INFO
MINED059
[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message.
packages/onenote-converter/parser-macro…:43
INFO
MINED047
[MINED047] Emoji In Source: Emoji ✅ ❌ 🚀 in code/comments — common AI output unless explic…
packages/renderer/stringUtils.ts:26
INFO
MINED047
[MINED047] Emoji In Source: Emoji ✅ ❌ 🚀 in code/comments — common AI output unless explic…
packages/app-mobile/utils/fs-driver/run…:117
INFO
MINED048
[MINED048] Php Error Suppress: @function() suppresses errors silently. Hides real issues.
packages/app-mobile/ios/ShareExtension/…:17
INFO
MINED048
[MINED048] Php Error Suppress: @function() suppresses errors silently. Hides real issues.
packages/app-mobile/ios/ShareExtension/…:17
INFO
MINED049
[MINED049] Print Pii: Logging password/token/email/ssn directly to stdout.
packages/app-mobile/contentScripts/mark…:85
INFO
MINED056
[MINED056] React Key As Index: key={index} in map() — re-renders the wrong elements on re…
packages/app-desktop/gui/ResourceScreen…:122
INFO
MINED056
[MINED056] React Key As Index: key={index} in map() — re-renders the wrong elements on re…
packages/app-desktop/gui/ProfileEditor.…:51
INFO
MINED056
[MINED056] React Key As Index: key={index} in map() — re-renders the wrong elements on re…
packages/app-desktop/gui/NoteEditor/War…:98
INFO
MINED058
[MINED058] React Dangerously Set Html: dangerouslySetInnerHTML bypasses Reacts JSX escapi…
packages/app-desktop/gui/NoteEditor/Not…:127
INFO
MINED058
[MINED058] React Dangerously Set Html: dangerouslySetInnerHTML bypasses Reacts JSX escapi…
packages/app-desktop/gui/NoteEditor/Not…:180
INFO
MINED043
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr…
packages/app-mobile/components/Extended…:134
INFO
MINED043
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr…
packages/app-desktop/runForTesting.sh:115
INFO
MINED043
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr…
packages/app-desktop/gui/NoteEditor/Not…:3
INFO
MINED054
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
packages/app-desktop/gui/WindowCommands…:23
INFO
MINED054
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
packages/app-desktop/gui/EditFolderDial…:67
INFO
MINED054
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
packages/app-desktop/InteropServiceHelp…:94
INFO
MINED078
[MINED078] Eslint Disable File: /* eslint-disable */ at top disables all lint rules for t…
packages/app-clipper/popup/postinstall.…:15
INFO
MINED045
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError …
packages/app-cli/app/command-sync.ts:142
INFO
MINED045
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError …
packages/app-cli/app/command-e2ee.ts:45
INFO
MINED045
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError …
packages/app-cli/app/cli-utils.ts:198
INFO
MINED098
[MINED098] Global Scope Pollution: Attaching libraries/objects directly to the global win…
packages/app-mobile/jest.setup.js:21
INFO
MINED098
[MINED098] Global Scope Pollution: Attaching libraries/objects directly to the global win…
Assets/WebsiteAssets/js/script.js:122
INFO
MINED052
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
packages/app-cli/app/base-command.ts:5
INFO
MINED052
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
Assets/TinyMCE/JoplinLists/src/main/ts/…:26
INFO
MINED052
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
Assets/TinyMCE/JoplinLists/src/main/ts/…:145
INFO
MINED044
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger …
packages/app-cli/app/build-doc.js:136
INFO
MINED044
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger …
Assets/WebsiteAssets/js/script.js:15
INFO
MINED044
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger …
Assets/TinyMCE/IconPack/postinstall.js:18