java-topology/SCAN-TODO.md

12 KiB
Raw Permalink Blame History

Scan TODO — Unscanned High-Value Targets

Status: 865 UNDF, 420+ defect dirs, 35 waves complete. Rule: clone, scan, delete clone after. Keep disk under 90%.

Priority 1 — Major infrastructure not yet scanned

  • Squid (C, HTTP proxy, huge install base) — squid-0001 MOAD-0001 CWE-407 NotePairs::appendNewOnly hasPair() O(SE) 374x; squid-0002 MOAD-0001 CWE-407 removeConnectionHeaderEntries strListIsMember O(HC) 3x; squid-0003 MOAD-0004 CWE-312 FTP+Basic auth credentials logged verbatim incl DBG_IMPORTANT; squid-0004 MOAD-0001 CWE-407 whichPeer() O(P*A) ICP peer lookup 83x at P=100; MOAD-0002 SquidConfig god-object 571 lines/209 files (structural, not patchable); MOAD-0003/0005 CLEAN
  • Sendmail (C, MTA) — sendmail-0001 MOAD-0004 CWE-312 SASL client password logged verbatim at tTd(95,5) debug level in getauth(); MOADs 0001/0002/0003/0005 CLEAN
  • PgBouncer (C, PostgreSQL connection pooler) — pgbouncer-0001 MOAD-0004 CWE-312 SCRAM verifier logged at slog_debug; pgbouncer-0002 MOAD-0001 CWE-407 find_database() O(D) linear scan per connection 100x at D=100; MOADs 0002/0003/0005 CLEAN (single-threaded libevent)
  • Suricata (C, IDS/IPS) — suricata-0001 (CWE-407 threshold SID lookup O(T×S), CWE-312 auth header logging); suricata-0002 (CWE-407 EveHttpLogJSONHeaders O(H×F=53) per tx, 53x); MOADs 0003/0005 CLEAN
  • ClamAV (C, antivirus engine) — clamav-0001 MOAD-0004 CWE-312 proxy password logged verbatim on curl failure; MOAD-0001/0002/0003/0005 CLEAN (AC trie, BM hash, mutex-protected cache)
  • Snort (C++, IDS/IPS) — snort3-0001 MOAD-0001 CWE-407 service_candidates std::find dedup O(MC) per packet in AppID ServiceDiscovery 72x at M=10000; snort3-0002 MOAD-0001 CWE-407 CHP match_tally std::find_if O(MT) per HTTP packet 48x at T=100; MOADs 0002/0003/0004/0005 CLEAN
  • WireGuard (deeper, Go userspace tools) — wireguard-go + wireguard-tools CLEAN all 5 MOADs; go uses hash map peer lookup O(1), radix trie AllowedIPs O(32/128), no key material logged, all maps mutex-protected; tools use O(N log N) sort+merge for peer sync
  • Thunderbird (C++, email client) — thunderbird-0001 through thunderbird-0006 MOAD-0001 CWE-407 (account dedup 250x, copy-service 250x, IMAP auto-sync 250x, UID-state 500x, filter headers 125x, spam whitelist 100x); thunderbird-0007 MOAD-0001 folder tree init 250x; thunderbird-0008 MOAD-0004 CWE-312 OAuth2 access_token+refresh_token logged verbatim; MOADs 0002/0003/0005 CLEAN
  • Wine (C, Windows compatibility layer) — wine-0002 MOAD-0004 CWE-312 Basic Auth username:password logged verbatim in cache_basic_authorization() TRACE; wine-0003 MOAD-0001 CWE-407 CRYPT_CheckSimpleChainForCycles O(N^2) cert comparison (developer-acknowledged) 47x at N=1000; wine-0004 MOAD-0001 CWE-407 token_find_privilege O(count*P) in AdjustTokenPrivileges/token_check_privileges 143x at N=1000; MOAD-0002/0003/0005 CLEAN

Priority 2 — ERP/Business not yet scanned

  • Dolibarr (PHP, ERP) — scanned (see prior wave)
  • Tryton (Python, ERP) — tryton-0001 (_save_values previous list O(T*P)); MOADs 0002/0003/0004/0005 CLEAN
  • xTuple PostBooks (C++/Qt ERP, scanned via openrpt public repo) — xtuple-0001 orutils missingParamList QStringList::contains O(P*M) 52x; MOADs 0002/0003/0004/0005 CLEAN
  • SuiteCRM (PHP, CRM) — 6 defects: suitecrm-0001..0004 (prior scan), suitecrm-0005 ProjectTask getAllSubProjectTasks O(T²·P) 70x, suitecrm-0006 LuceneSearch parseHits O(H·M) 8x; MOADs 0002/0003/0004/0005 CLEAN
  • InvoiceNinja (PHP, invoicing) — 5 defects total: invoiceninja-0001 S3Cleanup O(N²) in_array; invoiceninja-0002 MOAD-0004 CheckoutCom webhook CWE-312; invoiceninja-0003 MOAD-0002 App::setLocale intertangle; invoiceninja-0004 MOAD-0001 SettingsSaver string_casts O(C×S) 4.7x; invoiceninja-0005 MOAD-0004 CBAPowerBoard vault_token CWE-312; MOAD-0003/0005 CLEAN

Priority 3 — Collaboration/Chat

  • Rocket.Chat (deeper, TypeScript) — 0003 MOAD-0001 video-conf endDirectCall O(S*U); 0004 MOAD-0004 CWE-312 OAuth secrets logged; MOAD-0002/0003/0005 CLEAN
  • Zulip (deeper, Python) — 3 MOAD-0001 defects: user_groups.py lock_subgroups O(GF), update_user_group O(DF), actions/user_groups.py full_member_group_user_ids O(M*F); MOAD-0002/0003/0004/0005 CLEAN
  • Jitsi Meet (Java/TypeScript) — jitsi-meet frontend: 4 MOAD-0001 defects (0001-0004); jicofo backend: jicofo-0001 MOAD-0001 reInviteParticipantsById List.contains O(P x R) HIGH 250x; jicofo-0002 MOAD-0004 CWE-312 YouTube stream key logged verbatim; jicofo MOADs 0002/0003/0005 CLEAN
  • Matrix Dendrite (Go, alt homeserver — already in defects/)
  • Mattermost (deeper, Go)

Priority 4 — Desktop apps

  • Pidgin/Finch (C, chat client) — pidgin-0001 CWE-407 499.5x, pidgin-0002 CWE-312
  • HexChat (C, IRC client)
  • Evolution (C, email/calendar) — evolution-0002 MOAD-0001 CWE-407 search_hit_cache g_slist_find_custom O(N^2) 433x at N=1000; MOADs 0002/0003/0004/0005 CLEAN
  • Thunderbird (C++, email) — see Priority 1 entry above; 8 defects total
  • Calibre (deeper, Python ebook manager) — calibre-0003 MOAD-0001 CWE-407 depth_first flat.index() O(L*F) 38x at F=500; calibre-0004 MOAD-0001 CWE-407 HTMLFile.find_links list dedup O(L^2) 124x at L=1000; MOADs 0002/0003/0004/0005 CLEAN
  • Okular/Evince/Zathura (PDF viewers) — okular-0001 MOAD-0001 CWE-407 fontReadingGotFont QList::indexOf O(F²) 15.5x at F=1000; MOADs 0002/0003/0004/0005 CLEAN; evince-0001 MOAD-0001 CWE-407 ev-page-accessible children pointer scan O(N^2) 500x at N=1000; zathura-0001 MOAD-0001 CWE-407 flatten_rectangles girara_list_append_unique O(R^2) 120x at R=200; Evince+Zathura MOADs 0002/0003/0004/0005 CLEAN
  • OpenSCAD (C++, parametric CAD) — openscad-0001 MOAD-0001 CWE-407 export_amf add_vertex O(V^2) ~85x at V=1000; openscad-0002 MOAD-0001 CWE-407 PolySetBuilder color dedup O(F*C) 69x at F=10000; openscad-0003 MOAD-0004 CWE-312 OctoPrint requestApiKey logs app_token verbatim; MOADs 0002/0003/0005 CLEAN
  • Solvespace (C++, parametric CAD)
  • Cura / PrusaSlicer (C++/Python, 3D printing slicers) — cura-0001 MOAD-0001 CompatibleMachineModel list rebuild O(P^2) LOW-MEDIUM; cura-0002 MOAD-0001 SettingInheritanceManager List[str] membership O(S) per property change HIGH 109x; prusaslicer-0001/0002/0003 MOAD-0001 (pre-existing); prusaslicer-0004 MOAD-0001 FillRectilinear queue O(R^2) std::find 64x; MOADs 0002/0003/0004/0005 CLEAN both targets

Priority 4c — Formal Methods / Theorem Provers

  • Lean 4 (Lean+C++, theorem prover + build system) — lean4-0001 MOAD-0001 Lake guardCycle List.contains O(N^2) in topological build (Cycle.lean:83); lean4-0002 MOAD-0001 kernel/inductive.cpp std::find nested loop O(K*N); lean4-0003 MOAD-0001 fresh name generation std::find while loop (inductive.cpp:543, util.cpp:69); lean4-0004 MOAD-0005 ir_interpreter.cpp double-checked locking race in symbol cache (828-869); lean4-0005 MOAD-0005 Lake job registration IO.Ref race (Run.lean:157); lean4-0006 MOAD-0003 trace.cpp LEAN_THREAD_PTR(g_opts) leaks across thread pool; lean4-0007 MOAD-0001 runtime/process.cpp Windows env var O(N^2); MOAD-0004/0011 CLEAN; MOAD-0007 CLEAN
  • Coq (OCaml, theorem prover)
  • Isabelle/HOL (ML, theorem prover)
  • Agda (Haskell, dependently typed)

Priority 5 — AI/ML new wave

  • Ollama (Go, local LLM runtime) — ollama-0001 MOAD-0001 CWE-407 kvcache buildMask slices.Contains O(B*E) Gemma3 multi-image HIGH 250x; MOADs 0002/0003/0004/0005 CLEAN
  • LangChain (Python, LLM orchestration) — langchain-0001 MOAD-0001 MultiVectorRetriever id dedup O(D^2) (pre-existing); langchain-0002 MOAD-0001 MultiQueryRetriever _unique_documents slice-in-loop O(D^2) 21x at D=500 MEDIUM; MOADs 0002/0003/0004/0005 CLEAN
  • Hugging Face Transformers (Python) — transformers-0001 (pre-existing) all_special_ids in convert_ids_to_tokens; transformers-0002 CWE-312 HF_TOKEN logged; transformers-0003 MOAD-0001 all_special_tokens in convert_tokens_to_string (marian/m2m100/speech_to_text/siglip/gpt_sw3); transformers-0004 MOAD-0001 all_special_ids rebuilt per loop in wav2vec2/wav2vec2_phoneme/esm; MOADs 0002/0003/0005 CLEAN
  • vLLM (Python/C++, LLM serving) — vllm-0001 (pre-existing) LoRA lora_index_to_id.index() per token; vllm-0002 Grok2Tokenizer dict.values() scan per output token; MOADs 0002/0003/0004/0005 CLEAN
  • llama.cpp (C++) — llamacpp-0001 MOAD-0001 CWE-407 grammar_advance_stack std::find O(S^2) MEDIUM-HIGH; MOADs 0002/0003/0004/0005 CLEAN

Priority 6 — Scientific/Data

  • OpenFOAM (C++, CFD simulation) -- openfoam-0001 moleculeCloud molsToDelete findIndex O(D^2) HIGH 400x (pre-existing); openfoam-0002 CFCFaceToCellStencil allGlobalFaces findIndex O(CFG) HIGH (pre-existing); openfoam-0003 DSMCCloud::initialise findIndex(typeIdList_) O(CTM*K) MEDIUM 3-10x; MOAD-0002 objectRegistry god-object structural (not patchable); MOAD-0003/0004/0005 CLEAN
  • ROOT (C++, CERN data analysis) -- root-cern-0001 TTreeCache potentialVetoes std::find O(B*N^2) MEDIUM (pre-existing); root-cern-0002 TWebFile Authorization header logged at gDebug>0 CWE-312 HIGH (pre-existing); root-cern-0003 TTree::InitializeBranchLists fSeqBranches std::find O(B^2) MEDIUM 500x at B=500; MOAD-0002 gROOT intertangle (gROOTMutex inconsistently applied, structural); MOAD-0003 TTHREAD_TLS method-scoped state CLEAN; MOAD-0005 RWebDisplayHandle::FindCreator static map GUI-only CLEAN
  • Scilab (C/Fortran, numerical computation)
  • Octave (deeper, C++)
  • R (deeper, C)
  • Julia (deeper)

Priority 7 — Emulators/Retro

  • PCSX2 (C++, PS2 emulator)
  • RPCS3 (C++, PS3 emulator)
  • PPSSPP (C++, PSP emulator)
  • DOSBox-X (C++, DOS emulator)

Priority 8 — Networking/Infra

  • Spamhaus tooling: rbldnsd (C, DNS blocklist server) CLEAN all 5 MOADs; dnsdbq (C, pDNS CLI) dnsdbq-0001 MOAD-0004 CWE-312 API key logged verbatim in debug mode; pdns-logger CLEAN; rdap (Go library) CLEAN
  • Forgejo (Go, Gitea fork)
  • Woodpecker CI (Go)
  • Drone CI (Go)
  • Gitea (deeper)
  • Wekan (Meteor/JS, kanban board) — wekan-0003 MOAD-0001 wekanCreator member dedup O(M^2)/O(C*M^2); MOAD-0002/0003/0004/0005 CLEAN
  • Taiga (Python, project management)
  • Redmine (Ruby, project management)

Priority 9 — IoT/Embedded

  • Zephyr RTOS (C)
  • FreeRTOS (C)
  • Contiki-NG (C)
  • ESP-IDF (C)
  • TinyGo (Go)

Priority 4b — Creative/Publishing (image editors, office suites)

  • darktable (C, photo workflow) — darktable-0001 CWE-407 dt_map_location_update_images g_list_find O(NM) 375x; darktable-0002 CWE-407 _tag_add_tags_to_list dedup O(TL) 375x; darktable-0003 CWE-407 map view clustering sel_imgs O(IJS) 160x; darktable-0004 CWE-312 pwstorage backends log credentials verbatim; darktable-0005 CWE-407 modulegroups test_visible O(MGP) 38x; MOADs 0002/0003/0005 CLEAN
  • Scribus (C++/Qt, desktop publishing) — scribus-0001 getSortedStyleList QList::contains O(S²) 167x; scribus-0002 getUsedPatterns results.contains O(I×R) 98x; scribus-0003 Selection::addItems m_SelList.contains O(N×M) 2100x; scribus-0004 file savers names.contains O(S²) per save 375x at N=1000; MOADs 0002/0003/0004/0005 CLEAN
  • Kdenlive (C++/Qt, video editor) — kdenlive-0001..0008 CWE-407 (pre-existing), kdenlive-0009 MOAD-0005 lumacache QtConcurrent data race; kdenlive-0010 CWE-407 checkConsistency QList::contains O(P*K^2) 500x at K=1000; MOADs 0002/0003/0004 CLEAN; MOAD-0002 pCore god-object noted
  • Audacity (C++, audio editor) — audacity-0001 CWE-407 selectedTracks std::find O(T*S) (pre-existing); audacity-0002 CWE-407 movingClips std::find (pre-existing); MOADs 0002/0003/0004/0005 CLEAN
  • Krita (C++/Qt, digital painting) — krita-0001 MOAD-0001 CWE-407 NodeDelegate togglePropertyRecursive QList::contains O(N^2) MEDIUM 22.7x at N=500; krita-0002 MOAD-0001 CWE-407 DlgCreateBundle allResourcesIds QStack::contains O(K^2) LOW-MEDIUM 36.7x at K=500; MOADs 0002/0003/0004/0005 CLEAN

Already scanned CLEAN (no need to rescan)

Odoo, Beam, Hive (pre-existing only), Keycloak, Shiro, Netdata, etcd, GCC, Rust compiler, ScyllaDB, qBittorrent, Transmission, pygame, MPD, Rhythmbox, MAME, Dolphin, ScummVM, Nextcloud, Gitea, mpv, Metabase, Emacs, HandBrake, Kubernetes (MOAD-5)