Libellus Potionis

Projekte, die den nachfolgenden Best Practices folgen, können sich freiwillig selbst zertifizieren und zeigen, dass sie einen Core-Infrastruktur-Initiative-/OpenSSF-Badge erhalten haben.

Es gibt keine Auswahl an Praktiken, die garantieren können, dass Software niemals Fehler oder Schwachstellen hat. Selbst formale Methoden können fehlschlagen, wenn die Spezifikationen oder Annahmen falsch sind. Auch gibt es keine Auswahl an Praktiken, die garantieren können, dass ein Projekt eine gesunde und gut funktionierende Entwicklungsgemeinschaft erhalten wird. Allerdings können Best Practices dabei helfen, die Ergebnisse von Projekten zu verbessern. Zum Beispiel ermöglichen einige Praktiken die Mehrpersonen-Überprüfung vor der Freigabe, die sowohl helfen können ansonsten schwer zu findende technische Schwachstellen zu finden und gleichzeitig dazu beitragen Vertrauen und den Wunsch nach wiederholter Zusammenarbeit zwischen Entwicklern verschiedener Unternehmen zu schaffen. Um ein Badge zu verdienen, müssen alle MÜSSEN und MÜSSEN NICHT Kriterien erfüllt sein, alle SOLLTEN Kriterien müssen erfüllt sein oder eine Rechtfertigung enthalten, und alle EMPFHOLEN Kriterien müssen erfüllt sein oder nicht (wir wollen sie zumindest berücksichtigt wissen). Wenn lediglich ein allgemeiner Kommentar angebeben werden soll, keine direkte Begründung, dann ist das erlaubt, wenn der Text mit "//" und einem Leerzeichen beginnt. Feedback ist willkommen auf derGitHub-Website als Issue oder Pull-Request. Es gibt auch eine E-Mail-Liste für allgemeine Diskussionen.

Wir stellen Ihnen gerne die Informationen in mehreren Sprachen zur Verfügung, allerdings ist die englische Version maßgeblich, insbesondere wenn es Konflikte oder Inkonsistenzen zwischen den Übersetzungen gibt.
Wenn dies Ihr Projekt ist, zeigen Sie bitte Ihren Baseline-Badge-Status auf Ihrer Projektseite! Der Baseline-Badge-Status sieht so aus: Baseline-Badge-Level für Projekt 13480 ist baseline-2 So betten Sie das Baseline-Badge ein:
Sie können Ihren Baseline-Badge-Status anzeigen, indem Sie Folgendes in Ihre Markdown-Datei einbetten:
[![OpenSSF Baseline](https://www.bestpractices.dev/projects/13480/baseline)](https://www.bestpractices.dev/projects/13480)
oder indem Sie Folgendes in Ihr HTML einbetten:
<a href="https://www.bestpractices.dev/projects/13480"><img src="https://www.bestpractices.dev/projects/13480/baseline"></a>


Dies sind die Baseline Niveau 3 Kriterien. Dies sind Kriterienversion v2026.02.19.

Baseline Series: Baseline Niveau 1 Baseline Niveau 2 Baseline Niveau 3

        

 Grundlagen

  • Allgemein

    Hinweis: Andere Projekte können den selben Namen benutzen.

    Libellus Potionis is a privacy-first, free, open-source, ad-free alcohol-consumption tracker that helps users monitor, pace, and manage their drinking habits entirely offline. It needs no invasive device permissions — no camera, microphone, or location access — and works completely without network connectivity.

    Key features

    • Intelligent logging: predefine custom beverages or use internationally common presets, and log drinks instantly or retroactively with precise timestamp corrections.
    • Concurrent limit tracking: set three simultaneous boundaries — a daily limit (grams of pure alcohol), a rolling 7-day weekly limit (grams), and a maximum number of drinking days per week — with visual progress bars in real time.
    • Blood-alcohol (BAC) estimation: enter your body weight for a live BAC approximation based on the established Widmark formula.
    • Addiction-counseling reports: generate a clear, well-organized two-page PDF report designed for consultations and counseling appointments.
    • Data portability: export your complete dataset as a standard CSV file for external processing (e.g. in LibreOffice Calc), or create secure JSON backups to migrate data between devices.
    • Granular adjustments: customize your "day start" time so late-night drinks count toward the correct evening, and define custom evaluation start dates for clean restarts.

    A comprehensive User's Guide is fully accessible in-app. The app is available on F-Droid.

    Bitte verwenden Sie das SPDX-License-Expression-Format; Beispiele sind "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "GPL-2.0+", "LGPL-3.0+", "MIT" und "(BSD-2-Clause OR Ruby)". Geben sie nicht die einfachen oder doppelten Anführungszeichen mit an.
    Wenn es mehr als eine Programmiersprache gibt, listen Sie sie als kommagetrennte Werte (Leerzeichen sind optional) auf und sortieren Sie sie von am häufigsten zum am wenigsten verwendeten. Wenn es eine lange Liste gibt, bitte mindestens die ersten drei häufigsten auflisten. Wenn es keine Programmiersprache gibt (z. B. ist dies nur ein Dokumentations- oder Testprojekt), verwenden Sie das einzelne Zeichen "-". Bitte verwenden Sie eine herkömmliche Großschreibung für jede Sprache, z.B. "JavaScript".
    Das Common Platform Enumeration (CPE) ist ein strukturiertes Namensschema für IT-Systeme, Software und Pakete. Es wird in diversen Systemen und Datenbanken bei der Meldung von Schwachstellen verwendet.

    Libellus Potionis is a privacy-first, offline, ad-free Android app for tracking, pacing, and managing alcohol consumption. It requests no network permission and no camera/microphone/location access; all data stays on the device in the app's private, sandboxed storage, encrypted at rest (AES-256-GCM via the Android Keystore), with an optional biometric lock. It is Free Software under GPL-3.0-or-later, developed openly on Codeberg and distributed through F-Droid. The project is deliberately maintained as a teaching-quality codebase: every source file carries a license header and KDoc, and a release gate (tools/release-check.sh) enforces documentation, version consistency, English-only source, and translation completeness. Quality is guarded by a broad automated test suite (JVM unit tests plus instrumented Room-migration, Compose-UI, and locale tests) and by Android Lint and Kotlin compiler warnings promoted to build-breaking errors.

 Steuerelemente 18/21

  • Steuerelemente


    Wenn einem Job Berechtigungen in einer CI/CD-Pipeline zugewiesen werden, MUSS der Quellcode oder die Konfiguration nur die minimal erforderlichen Berechtigungen für die entsprechende Aktivität zuweisen. [OSPS-AC-04.02]
    Konfigurieren Sie die CI/CD-Pipelines des Projekts so, dass sie Benutzern und Diensten standardmäßig die niedrigsten verfügbaren Berechtigungen zuweisen und Berechtigungen nur bei Bedarf für bestimmte Aufgaben erhöhen. In einigen Versionsverwaltungssystemen kann dies auf Organisations- oder Repository-Ebene möglich sein. Falls nicht, setzen Sie Berechtigungen auf der obersten Ebene der Pipeline.

    This control is conditional on the project operating a CI/CD pipeline in which jobs are assigned permissions, and the project operates none. No CI/CD system or pipeline is configured in the repository (no Woodpecker, Forgejo Actions, GitHub Actions, GitLab CI, or other automation), so there are no pipeline jobs that could be granted more than the minimum privileges; the precondition never occurs. Releases are built and published manually with Fastlane, run locally by the sole maintainer on a trusted checkout. Should a CI/CD pipeline be introduced later, it will be configured to assign the lowest available permissions by default and elevate only where a specific task requires it — tracked in the project roadmap, alongside the related OSPS-AC-04.01 and OSPS-BR-01.04.



    CI/CD-Pipelines, die vertrauenswürdige Mitarbeitereingaben akzeptieren, MÜSSEN diese Eingaben bereinigen und validieren, bevor sie in der Pipeline verwendet werden. [OSPS-BR-01.04]
    CI/CD-Pipelines sollten alle Mitarbeitereingaben bei expliziten Workflow-Ausführungen bereinigen (in Anführungszeichen setzen, escapen oder bei erwarteten Werten beenden). Obwohl Mitarbeiter im Allgemeinen vertrauenswürdig sind, können manuelle Eingaben in einen Workflow nicht überprüft werden und könnten durch eine Kontoübernahme oder eine Insider-Bedrohung missbraucht werden.

    This control is conditional on the project operating CI/CD pipelines that accept trusted-collaborator input, and the project operates no CI/CD pipelines at all. No CI/CD system or pipeline is configured in the repository (no Woodpecker, Forgejo Actions, GitHub Actions, GitLab CI, or other automation), so there is no pipeline — and in particular none accepting manual collaborator/workflow input — whose input could require sanitizing or validation; the precondition never occurs. Releases are built and published manually with Fastlane, run locally by the sole maintainer on a trusted checkout. Should a CI/CD pipeline be introduced later, any collaborator or workflow inputs it accepts will be sanitized and validated before use, consistent with the related OSPS-BR-01.01/OSPS-BR-01.03 and OSPS-AC-04.01/OSPS-AC-04.02 (tracked in the project roadmap).



    Wenn ein offizielles Release erstellt wird, MÜSSEN alle Assets innerhalb dieses Releases eindeutig mit dem Release-Identifikator oder einem anderen eindeutigen Identifikator für das Asset verknüpft sein. [OSPS-BR-02.02]
    Weisen Sie jedem vom Projekt produzierten Software-Asset einen eindeutigen Versionsidentifikator zu, der einer konsistenten Namenskonvention oder einem Nummerierungsschema folgt. Beispiele sind SemVer, CalVer oder Git Commit ID.

    Every user-facing release has a unique version identifier. The app carries a three-part versionName (MAJOR.MINOR.PATCH) and a strictly increasing integer versionCode, both defined in android/app/build.gradle.kts. CONTRIBUTING.md requires that the versionName, the top CHANGELOG.md entry, the README title, and the proguard-rules.pro header all carry the same version string and that versionCode increases by at least 1 each release; the tools/release-check.sh release gate enforces this consistency automatically. See https://codeberg.org/godisch/potillus/src/branch/main/CONTRIBUTING.md#7-versioning--release-checklist



    Das Projekt MUSS eine Richtlinie für die Verwaltung von Secrets und Zugangsdaten definieren, die vom Projekt verwendet werden. Die Richtlinie sollte Leitlinien für die Speicherung, den Zugriff und die Rotation von Secrets und Zugangsdaten enthalten. [OSPS-BR-07.02]
    Dokumentieren Sie, wie Secrets und Zugangsdaten innerhalb des Projekts verwaltet und verwendet werden. Dies sollte Details darüber enthalten, wie Secrets gespeichert werden (z.B. unter Verwendung eines Tools zur Verwaltung von Secrets), wie der Zugriff kontrolliert wird und wie Secrets rotiert oder aktualisiert werden. Stellen Sie sicher, dass sensible Informationen nicht fest im Quellcode kodiert oder in Versionsverwaltungssystemen gespeichert werden.

    SECURITY.md defines a "Secrets and credentials" policy — https://codeberg.org/godisch/potillus/src/branch/main/SECURITY.md#secrets-and-credentials — enumerating the secrets used (release signing keystore, Google Play upload credentials, and the maintainer's OpenPGP signing key) with guidelines for storing them (never hard-coded or committed; git-ignored with structure-only templates; environment-variable injection), accessing them (held solely by the single maintainer on trusted machines, not shared), and rotating them (Play credential/tokens rotated at will; OpenPGP key rotated by publishing a new key; the long-lived Android app-signing key rotated only on suspected compromise via the distribution channel's key-rotation process; any exposed secret revoked and replaced before the next release).



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der Integrität und Authentizität der Release-Assets enthalten. [OSPS-DO-03.01]
    Anweisungen im Projekt sollten Informationen über die verwendete Technologie, die auszuführenden Befehle und die erwartete Ausgabe enthalten. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.

    Releases are cryptographically signed with the maintainer's own Android app-signing key via reproducible builds; the private key is held only by the maintainer and is never stored on Codeberg, F-Droid, or any other distribution site. SECURITY.md ("Verifying releases") documents how users obtain the public key and verify a release: the F-Droid client verifies the signature automatically and the project's F-Droid metadata pins the allowed signing key; users can also compare the APK signing certificate SHA-256 fingerprint (7506f17184b31a2d67621305d190a73e497806b39f7d64463ff5dbc0afd8317b) via apksigner verify --print-certs, or reproduce the build and compare. URL: https://codeberg.org/godisch/potillus/src/branch/main/SECURITY.md#verifying-releases



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation Anweisungen zur Überprüfung der erwarteten Identität der Person oder des Prozesses enthalten, die/der die Software-Release erstellt hat. [OSPS-DO-03.02]
    Die erwartete Identität kann in Form von Schlüssel-IDs zur Signierung, Aussteller und Identität aus einem Sigstore-Zertifikat oder ähnlichen Formen vorliegen. Vermeiden Sie nach Möglichkeit die Speicherung dieser Dokumentation am gleichen Ort wie die Build- und Release-Pipeline, um zu vermeiden, dass eine einzelne Sicherheitsverletzung sowohl die Software als auch die Dokumentation zur Überprüfung der Integrität der Software kompromittiert.

    Releases are cryptographically signed with the maintainer's own Android app-signing key via reproducible builds; the private key is held only by the maintainer and is never stored on Codeberg, F-Droid, or any other distribution site. SECURITY.md ("Verifying releases") documents how users obtain the public key and verify a release: the F-Droid client verifies the signature automatically and the project's F-Droid metadata pins the allowed signing key; users can also compare the APK signing certificate SHA-256 fingerprint (7506f17184b31a2d67621305d190a73e497806b39f7d64463ff5dbc0afd8317b) via apksigner verify --print-certs, or reproduce the build and compare. URL: https://codeberg.org/godisch/potillus/src/branch/main/SECURITY.md#verifying-releases



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage über den Umfang und die Dauer der Unterstützung für jedes Release enthalten. [OSPS-DO-04.01]
    Um den Umfang und die Dauer der Unterstützung für die veröffentlichten Software-Assets des Projekts zu kommunizieren, sollte das Projekt eine SUPPORT.md-Datei, einen "Support"-Abschnitt in SECURITY.md oder eine andere Dokumentation haben, die den Support-Lebenszyklus erklärt, einschließlich der erwarteten Dauer der Unterstützung für jedes Release, der Art der bereitgestellten Unterstützung (z.B. Fehlerkorrekturen, Sicherheitsaktualisierungen) und aller relevanten Richtlinien oder Verfahren zur Erlangung von Unterstützung.

    SECURITY.md includes a "Support" section describing the scope and duration of support for each release — https://codeberg.org/godisch/potillus/src/branch/main/SECURITY.md#support . The project is a single-maintainer rolling release in which only the latest version is supported; support consists of best-effort bug fixes and security updates shipped in new releases via F-Droid, with no back-porting; each release is supported until the next supersedes it; and support is obtained through the Codeberg issue tracker (or the vulnerability-reporting process for security issues).



    Wenn das Projekt ein Release erstellt hat, MUSS die Projektdokumentation eine beschreibende Aussage enthalten, wann Releases oder Versionen keine Sicherheitsaktualisierungen mehr erhalten werden. [OSPS-DO-05.01]
    Um den Umfang und die Dauer der Unterstützung für Sicherheitskorrekturen zu kommunizieren, sollte das Projekt eine SUPPORT.md oder eine andere Dokumentation haben, die die Richtlinien des Projekts für Sicherheitsaktualisierungen erklärt.

    The "Support" section of SECURITY.md states when versions stop receiving security updates — https://codeberg.org/godisch/potillus/src/branch/main/SECURITY.md#support . A given version stops receiving security updates as soon as a newer release supersedes it, because security fixes are shipped in new releases rather than back-ported; if the project is discontinued this will be announced in the repository, after which no further security updates are provided.



    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, dass Code-Mitwirkende überprüft werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden. [OSPS-GV-04.01]
    Veröffentlichen Sie eine durchsetzbare Richtlinie in der Projektdokumentation, die erfordert, dass Code-Mitwirkende überprüft und genehmigt werden, bevor ihnen erweiterte Berechtigungen für sensible Ressourcen gewährt werden, wie z.B. Merge-Genehmigung oder Zugriff auf Secrets. Es wird empfohlen, dass die Überprüfung die Feststellung einer begründbaren Identitätslinie beinhaltet, wie z.B. die Bestätigung der Zugehörigkeit des Beitragsleistenden zu einer bekannten vertrauenswürdigen Organisation.

    docs/GOVERNANCE.md documents an enforceable policy that code collaborators are reviewed before being granted escalated permissions to sensitive resources — https://codeberg.org/godisch/potillus/src/branch/main/docs/GOVERNANCE.md#repository-access-and-account-security . Write/merge access to the canonical repository and access to release secrets or credentials are granted only after the maintainer has reviewed and approved the individual, considering their track record of contributions reviewed through the normal pull-request process, a justifiable lineage of identity, and the mandatory 2FA. Permissions are granted at the lowest level needed and escalated only as further need is demonstrated; until such a grant, all contributions go through pull requests merged only by the maintainer, so no contributor holds escalated permissions without this review.



    Wenn das Projekt ein Release erstellt hat, MÜSSEN alle kompilierten veröffentlichten Software-Assets mit einer Software-Stückliste (Software Bill of Materials) ausgeliefert werden. [OSPS-QA-02.02]
    Es wird empfohlen, SBOMs zum Build-Zeitpunkt automatisch mit einem Tool zu generieren, das auf Genauigkeit geprüft wurde. Dies ermöglicht es Benutzern, diese Daten auf standardisierte Weise zusammen mit anderen Projekten in ihrer Umgebung aufzunehmen.

    Every released version is delivered with a CycloneDX software bill of materials. The build generates the SBOM alongside the release artifact — make release/make bundle run the cyclonedxDirectBom Gradle task, producing android/app/build/outputs/sbom/libellus-potionis-sbom.json, normalized to be byte-stable — and each published release on Codeberg is accompanied by that SBOM as a downloadable release asset: https://codeberg.org/godisch/potillus/releases . Attaching the SBOM is a documented step in the release checklist: https://codeberg.org/godisch/potillus/src/branch/main/CONTRIBUTING.md#7-versioning--release-checklist . Users can thus obtain a standardized, auto-generated SBOM for each release.



    Wenn das Projekt ein Release erstellt hat, das mehrere Quellcode-Repositorys umfasst, MÜSSEN alle Unterprojekte Sicherheitsanforderungen durchsetzen, die genauso streng oder strenger sind als die primäre Codebasis. [OSPS-QA-04.02]
    Alle zusätzlichen Unterprojekt-Code-Repositorys, die vom Projekt erstellt und in ein Release kompiliert wurden, müssen Sicherheitsanforderungen durchsetzen, die dem Status und der Absicht der jeweiligen Codebasis entsprechen. Zusätzlich zur Befolgung der entsprechenden OSPS Baseline-Anforderungen kann dies die Anforderung einer Sicherheitsüberprüfung, die Sicherstellung, dass es frei von Schwachstellen ist, und die Sicherstellung, dass es frei von bekannten Sicherheitsproblemen ist, umfassen.

    This control applies only to a release comprising multiple source code repositories, and Libellus Potionis is a single-repository project. The entire application is built from one canonical repository (https://codeberg.org/godisch/potillus), with no submodules, subprojects, or additional source repositories compiled into the release, so there are no subprojects that could need to enforce security requirements as strict as the primary codebase; the precondition never occurs. This is consistent with the single-repository answer given for the related OSPS-QA-04.01.



    Während das Projekt aktiv ist, MUSS die Dokumentation des Projekts klar dokumentieren, wann und wie Tests ausgeführt werden. [OSPS-QA-06.02]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der erklärt, wie Tests lokal und in der CI/CD-Pipeline ausgeführt werden. Die Dokumentation sollte erklären, was die Tests testen und wie die Ergebnisse interpretiert werden.

    The project ships a substantial automated test suite, released as FLOSS under GPL-3.0-or-later in the same repository: JVM unit tests in android/app/src/test/ (domain, data, l10n, util, and ViewModel layers, plus LocaleSyncTest) and instrumented tests in android/app/src/androidTest/ (Room migration validation, Compose UI components, on-device locale formatting), using FLOSS test frameworks (JUnit, AndroidX/Compose testing). How to run the tests is documented in CONTRIBUTING.md §5 "Testing strategy" (./gradlew :app:test for unit tests, ./gradlew :app:connectedAndroidTest for instrumented tests) and §7. See https://codeberg.org/godisch/potillus/src/branch/main/CONTRIBUTING.md#5-testing-strategy



    Während das Projekt aktiv ist, MUSS die Dokumentation des Projekts eine Richtlinie enthalten, dass alle wesentlichen Änderungen an der vom Projekt produzierten Software Tests der Funktionalität in einer automatisierten Testsuite hinzufügen oder aktualisieren sollten. [OSPS-QA-06.03]
    Fügen Sie der Beitragsdokumentation einen Abschnitt hinzu, der die Richtlinie zum Hinzufügen oder Aktualisieren von Tests erklärt. Die Richtlinie sollte erklären, was eine wesentliche Änderung darstellt und welche Tests hinzugefügt oder aktualisiert werden sollten.

    The project has a formal written policy mandating tests for new functionality. CONTRIBUTING.md §5 ("Test policy (mandatory)") states that as major new functionality is added, automated tests covering it MUST be added to the project's automated test suite as part of the same change, and that a change introducing significant new behavior without accompanying tests will not be merged. This is reinforced by the domain-layer coverage-floor rules in the same section. URL: https://codeberg.org/godisch/potillus/src/branch/main/CONTRIBUTING.md#5-testing-strategy



    Wenn ein Commit in den primären Branch gemacht wird, MUSS das Versionskontrollsystem des Projekts mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen erfordern. [OSPS-QA-07.01]
    Konfigurieren Sie das Versionskontrollsystem des Projekts so, dass mindestens eine menschliche Genehmigung der Änderungen durch einen Nicht-Autor vor dem Zusammenführen in den Release- oder primären Branch erforderlich ist. Dies kann erreicht werden, indem ein Pull-Request von mindestens einem anderen Mitarbeiter überprüft und genehmigt werden muss, bevor er zusammengeführt werden kann.

    The project currently has a single maintainer who authors and reviews all changes, so fewer than 50% of modifications are reviewed by a person other than the author. The review process and checklist are documented (CONTRIBUTING.md, "Code review requirements"); satisfying this criterion requires a second, independent reviewer. Tracked in docs/ROADMAP.md ("Working toward the OpenSSF gold badge").



    Wenn das Projekt ein Release erstellt hat, MUSS das Projekt eine Bedrohungsmodellierung und eine Analyse der Angriffsfläche durchführen, um Angriffe auf kritische Codepfade, Funktionen und Interaktionen innerhalb des Systems zu verstehen und sich davor zu schützen. [OSPS-SA-03.02]
    Bedrohungsmodellierung ist eine Aktivität, bei der das Projekt die Codebasis, zugehörige Prozesse und Infrastruktur, Schnittstellen, Schlüsselkomponenten betrachtet und "wie ein Hacker denkt" und darüber nachdenkt, wie das System kompromittiert werden könnte. Jede identifizierte Bedrohung wird aufgelistet, damit das Projekt dann darüber nachdenken kann, wie Lücken/Schwachstellen, die entstehen könnten, proaktiv vermieden oder geschlossen werden können. Stellen Sie sicher, dass dies für neue Funktionen oder Breaking Changes aktualisiert wird.

    The project provides a security assurance case in docs/ASSURANCE_CASE.md (linked from SECURITY.md). It states the security requirements, describes the threat model (assets, in-scope adversaries/attacks, and explicit out-of-scope residual risks), identifies the trust boundaries (app sandbox, hardware-backed Keystore, FLAG_SECURE screen boundary, device/biometric authentication, the export boundary, and the absence of a network boundary), argues that secure design principles were applied (least privilege, secure defaults, economy of mechanism, defense in depth, fail-safe), and maps common implementation weakness classes to their countermeasures (injection, insecure storage, cryptography, input validation, network exposure, memory safety, tampering, and upgrade data integrity). URL: https://codeberg.org/godisch/potillus/src/branch/main/docs/ASSURANCE_CASE.md [assurance_case]



    Während das Projekt aktiv ist, MÜSSEN alle Schwachstellen in den Softwarekomponenten, die das Projekt nicht betreffen, in einem VEX-Dokument berücksichtigt werden, das den Schwachstellenbericht mit Details zur Nicht-Ausnutzbarkeit erweitert. [OSPS-VM-04.02]
    Richten Sie einen VEX-Feed ein, der den Ausnutzbarkeitsstatus bekannter Schwachstellen kommuniziert, einschließlich Bewertungsdetails oder aller vorhandenen Abhilfemaßnahmen, die verhindern, dass anfälliger Code ausgeführt wird.

    The project scans its dependencies with osv-scanner against the CycloneDX SBOM and triages findings — exploitable issues are fixed, and issues that do not affect this app are recorded as non-exploitable (SECURITY.md, "Dependency monitoring") — but this triage is not published as a VEX document. The project does not currently produce a VEX (Vulnerability Exploitability eXchange) feed communicating the exploitability status and non-exploitability justifications of known vulnerabilities in a standardized, machine-readable form, as this control requires.



    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SCA-Befunden in Bezug auf Schwachstellen und Lizenzen definiert. [OSPS-VM-05.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von SCA-Befunden in Bezug auf Schwachstellen und Lizenzen definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.

    The project applies a documented approach to remediating software-composition-analysis (SCA) findings for both vulnerabilities and licenses. Vulnerabilities: dependencies are scanned before each release with osv-scanner against the CycloneDX SBOM and triaged so that exploitable vulnerabilities are remediated (upgraded or mitigated) before release and non-exploitable ones are recorded — https://codeberg.org/godisch/potillus/src/branch/main/SECURITY.md#dependency-monitoring . Licenses: every third-party dependency is verified to be under a license compatible with the project's GPL-3.0-or-later distribution and documented as such, so a dependency with an incompatible license is not shipped — https://codeberg.org/godisch/potillus/src/branch/main/COPYING.md . Together these define the remediation threshold for SCA findings.



    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, um SCA-Verstöße vor jedem Release zu beheben. [OSPS-VM-05.02]
    Dokumentieren Sie eine Richtlinie im Projekt, um anwendbare Software Composition Analysis-Ergebnisse vor jedem Release zu beheben, und fügen Sie Statusprüfungen hinzu, die die Einhaltung dieser Richtlinie vor dem Release überprüfen.

    The project periodically checks its external dependencies for known vulnerabilities. As documented in SECURITY.md ("Dependency monitoring") and enforced by the CONTRIBUTING.md §7 release checklist, dependencies are scanned before each release with osv-scanner (a FLOSS scanner querying the OSV database) against the CycloneDX SBOM the build generates. Reported issues are triaged: exploitable vulnerabilities are fixed by upgrading or mitigating the affected dependency; non-exploitable ones are recorded as such. URL: https://codeberg.org/godisch/potillus/src/branch/main/SECURITY.md#dependency-monitoring



    Während das Projekt aktiv ist, MÜSSEN alle Änderungen an der Codebasis des Projekts automatisch anhand einer dokumentierten Richtlinie für bösartige Abhängigkeiten und bekannte Schwachstellen in Abhängigkeiten bewertet und dann im Falle von Verstößen blockiert werden, außer wenn sie als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-05.03]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Software Composition Analysis-Tool bei allen Änderungen an der Codebasis ausführt. Fordern Sie an, dass die Statusprüfung bestanden wird, bevor Änderungen zusammengeführt werden können.

    This control requires all changes to be automatically evaluated against a documented policy for malicious and vulnerable dependencies and blocked on violation. The project scans dependencies with osv-scanner against the CycloneDX SBOM before each release and triages findings (SECURITY.md, "Dependency monitoring"), but that check is a manual pre-release step, not an automated per-change gate that blocks changes on violation. Without a CI pipeline enforcing it, changes are not automatically evaluated and blocked, so this control is not met. (Tracked in the project roadmap alongside the CI-based automated-blocking work.)



    Während das Projekt aktiv ist, MUSS die Projektdokumentation eine Richtlinie enthalten, die einen Schwellenwert für die Behebung von SAST-Befunden definiert. [OSPS-VM-06.01]
    Dokumentieren Sie eine Richtlinie im Projekt, die einen Schwellenwert für die Behebung von Befunden aus Static Application Security Testing (SAST) definiert. Fügen Sie den Prozess zur Identifizierung, Priorisierung und Behebung dieser Befunde hinzu.

    Findings from static analysis cannot reach a release: Android Lint runs as a release gate with abortOnError = true and warningsAsErrors = true, so any reported issue breaks the build and must be fixed (or made an explicit, reviewable exception) before a release can be produced. Timely remediation is thus enforced by construction, and no exploitable medium-or-higher findings are currently outstanding. See https://codeberg.org/godisch/potillus/src/branch/main/android/app/build.gradle.kts



    Während das Projekt aktiv ist, MÜSSEN alle Änderungen an der Codebasis des Projekts automatisch anhand einer dokumentierten Richtlinie auf Sicherheitsschwachstellen bewertet und im Falle von Verstößen blockiert werden, außer wenn sie als nicht ausnutzbar deklariert und unterdrückt wurden. [OSPS-VM-06.02]
    Erstellen Sie eine Statusprüfung im Versionskontrollsystem des Projekts, die ein Static Application Security Testing (SAST) Tool bei allen Änderungen an der Codebasis ausführt. Verlangen Sie, dass die Statusprüfung erfolgreich ist, bevor Änderungen zusammengeführt werden können.

    Android Lint, a FLOSS static analysis tool that goes well beyond compiler warnings and safe-language modes (it analyzes code, resources, the manifest, API usage, correctness, performance, and security across hundreds of rules), is applied to every release as a build gate: android/app/build.gradle.kts configures lint { abortOnError = true; warningsAsErrors = true } and the release process runs ./gradlew lintDebug, so a release cannot be produced while Lint reports any issue. See https://codeberg.org/godisch/potillus/src/branch/main/android/app/build.gradle.kts



Diese Daten sind unter der Community Data License Agreement – Permissive, Version 2.0 (CDLA-Permissive-2.0) verfügbar. Dies bedeutet, dass ein Datenempfänger die Daten mit oder ohne Änderungen weitergeben darf, solange der Datenempfänger den Text dieser Vereinbarung mit den weitergegebenen Daten zur Verfügung stellt. Bitte nennen Sie Martin A. Godisch und die OpenSSF Best Practices Badge-Mitwirkenden als Urheber.

Projekt-Badge-Eintrag im Besitz von: Martin A. Godisch.
Eintrag erstellt: 2026-07-04 04:21:04 UTC, zuletzt aktualisiert: 2026-07-07 03:30:36 UTC. Letztes erreichtes Badge: 2026-07-04 08:45:54 UTC.