You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
doc: correct three compliance_track claims against actual code
ECR-C SO.UserUpdateNotification — CI suppression scope:
The suppression guard (os.environ.get("CI")) is in check.py line 102,
not in github_version_check.py. dfetch environment calls
newer_version_available() unconditionally with no CI guard. Both the
row gap column and the note below the table are corrected.
ECR-I SO.LimitExternalImpact — timeout gap scoped to git/svn only:
archive.py implements timeouts (15 s reachability, 60 s download via
_http_conn). The gap now correctly states that only git and svn
subprocess calls have no timeout.
ECR-J SO.ReduceAttackSurface — same timeout correction applied.
https://claude.ai/code/session_01MoaUFm7mhFxEFuk14NKPh2
- Check is suppressed when the ``CI`` environment variable is set (intentional: avoids spurious output in automated pipelines)
209
+
- ``dfetch check`` suppresses the call when ``CI`` is set (`check.py <https://github.com/dfetch-org/dfetch/blob/main/dfetch/commands/check.py>`_ line 102); ``dfetch environment`` calls it unconditionally
210
210
- ✓ Implemented
211
211
* -
212
212
- SO.PostponeUpdates
@@ -286,7 +286,7 @@ The table below summarises dfetch's implementation of each prEN 40000-1-4 Securi
286
286
* - **ECR-I** — Minimise the negative impact by the products themselves or connected devices on the availability of services provided by other devices or networks.
287
287
- SO.LimitExternalImpact
288
288
- :ref:`C-001 <c-001>`, :ref:`C-007 <c-007>`
289
-
- No connection timeout or rate limiting on VCS operations; a stalled or slow remote can consume resources indefinitely
289
+
- Archive HTTP operations time out at 15 s (reachability) and 60 s (download) via ``archive.py``; git and svn subprocess calls have no timeout and can stall indefinitely
290
290
- ⚠ Partial
291
291
* -
292
292
- SO.PreventAttackPropagation
@@ -301,7 +301,7 @@ The table below summarises dfetch's implementation of each prEN 40000-1-4 Securi
301
301
* - **ECR-J** — Be designed, developed and produced to limit attack surfaces, including external interfaces.
- No domain or URL-scheme allowlist constrains which remote URLs the manifest may reference; no network-operation timeout is enforced
304
+
- No domain or URL-scheme allowlist constrains which remote URLs the manifest may reference; git and svn subprocess calls have no timeout (archive HTTP operations time out at 15 s / 60 s)
305
305
- ⚠ Partial
306
306
* - **ECR-K** — Be designed, developed and produced to reduce the impact of an incident using appropriate exploitation mitigation mechanisms and techniques.
307
307
- SO.ReduceImpactOfIncident
@@ -362,9 +362,9 @@ to the end user is the responsibility of the user's package manager.
362
362
**ECR-C SO.UserUpdateNotification** — ``dfetch check`` and ``dfetch environment``
363
363
both call ``newer_version_available()`` (``dfetch/util/github_version_check.py``),
364
364
which polls the GitHub releases API and prints a notice if a newer dfetch release
365
-
exists. The check is skipped when the ``CI`` environment variable is set to avoid
366
-
noise in automated pipelines; developers running dfetch interactively always receive
367
-
the notification.
365
+
exists. ``dfetch check`` suppresses the call when the ``CI`` environment variable
366
+
is set (``check.py`` line 102: ``if not os.environ.get("CI")``); ``dfetch environment``
367
+
does not apply this guard and always performs the check.
368
368
369
369
**ECR-M SO.SecureDataDeletion** — No dfetch-specific control is needed. DLM-1 is
370
370
satisfied by design: dfetch stores no personal data, credentials, or cryptographic
0 commit comments