Skip to content

Regelmäßiges C++ Audit: Suche nach Speicherlecks, Race Conditions, Alignment-Fehlern, Strict Aliasing, Type Punning & Best Practices #902

@makr-code

Description

@makr-code

Diese Issue beschreibt eine wiederkehrende Sicherheits- und Qualitätsprüfung für das ThemisDB C++ Codebase:

Prüfschritte

  • Speicherlecks (Resource Leaks, Owner lost, Dangling raw new/delete, OpenSSL C-API Objekte)
  • Race Conditions (Wettläufe bei Move/Copy, Thread-Safety, Lock Guards, Iterator Lifetime)
  • Alignment & Type Punning (strikte Alignment Assertion für SIMD, unaligned Zugriff auf ARM)
  • Strict Aliasing Violations (reinterpret_cast, memcpy/union bevorzugen)
  • Move Semantics & RAII-Pattern korrekt angewendet
  • Verwendung von Smart Pointer überall erzwingen (unique_ptr/shared_ptr, keine raw new/delete)
  • Exception Safety (Strong Guarantee, noexcept-Konstruktoren prüfen)
  • const-correctness und Typsicherheit
  • Nach Security-Fix TODOs, FIXMEs, HACKS filtern
  • Compliance zu Coding Standards (siehe C++ Coding Standards und LLM Core Verification Report)

Vorgehen

  1. Regelmäßige Ausführung: mindestens 1x pro Sprint/Monat
  2. Automatisierte Tools:
    • Cross-compile-reviewer.py
    • pre-build-validation.ps1
    • clang-tidy, cppcheck, AddressSanitizer, UBSan
    • Valgrind für Leaks
  3. Manuelle Review:
    • Durchsicht der Referenzdateien (siehe unten)
    • Sicherheits-relevante TODOs/FIXMEs gezielt prüfen

Relevante Dateiliste:

  • src/llm/model_loader.cpp
  • src/llm/gguf_loader.cpp
  • src/llm/paged_block_manager.cpp
  • src/llm/grammar.cpp
  • src/server/http3_session.cpp
  • src/auth/jwt_validator.cpp
  • src/auth/gssapi_authenticator.cpp
  • src/performance/allocator.h
  • src/utils/serialization.cpp
  • src/sharding/pki_shard_certificate.cpp
  • src/sharding/signed_request.cpp
  • src/utils/pki_client.cpp
  • src/utils/license_info.cpp
  • src/utils/error_registry.cpp
  • src/utils/pii_detection_engine.cpp
  • src/utils/normalizer.cpp
  • src/llm/adapter_load_balancer.cpp
  • src/llm/lora_framework/vram_allocator.cpp
  • src/performance/alignment_helpers.h
  • src/utils/unaligned_access.h
  • include/utils/safe_cast.h
  • include/utils/openssl_deleter.h
  • include/utils/vector_types.h
  • benchmarks/bench_lora_auto_binding.cpp
  • benchmarks/bench_advanced_patterns.cpp
  • benchmarks/RPC_FRAMEWORK_REVIEW.md
  • benchmarks/RPC_FRAMEWORK_FINAL_SUMMARY.md
  • docs/CODING_STANDARDS.md
  • docs/LLM_CORE_VERIFICATION_REPORT.md
  • docs/RACE_CONDITION_ANALYSIS.md
  • docs/RACE_CONDITION_SUMMARY.md
  • docs/de/llm/BEST_PRACTICES_AND_DESIGN_PATTERNS.md
  • docs/THREAD_SAFETY_BEST_PRACTICES.md
  • docs/chimera/SECURITY_SUMMARY.md
  • docs/de/guides/guides_styleguide.md
  • docs/analysis/IMPLEMENTATION_GUIDE.md
  • docs/COMPILER_TROUBLESHOOTING.md
  • docs/build-guide/BUILD_ARM_ERRORS.md
  • docs/build-guide/BUILD_LINUX_ERRORS.md
  • docs/CONTRIBUTING_PLATFORM_GUIDELINES.md
  • compendium/docs/chapter_36_security_hardening.md
  • compendium/docs/chapter_37_ecosystem_integration.md

Ziel

  • Proaktive Erkennung und Korrektur sicherheitskritischer Schwachstellen
  • Nachhaltige C++ Codequalität gemäß Industriestandards
  • Dokumentation aller Findings/PRs im Audit Wiki

Diese Aufgabe ist als periodisches TODO zu behandeln. Nach jedem Ausführen bitte Findings als Issue/PRs festhalten und verlinken!

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions