Skip to content

Commit 511783f

Browse files
committed
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
1 parent 3b02151 commit 511783f

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

doc/explanation/compliance_track.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ The table below summarises dfetch's implementation of each prEN 40000-1-4 Securi
206206
* -
207207
- SO.UserUpdateNotification
208208
- `dfetch/util/github_version_check.py <https://github.com/dfetch-org/dfetch/blob/main/dfetch/util/github_version_check.py>`_
209-
- 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
210210
- ✓ Implemented
211211
* -
212212
- SO.PostponeUpdates
@@ -286,7 +286,7 @@ The table below summarises dfetch's implementation of each prEN 40000-1-4 Securi
286286
* - **ECR-I** — Minimise the negative impact by the products themselves or connected devices on the availability of services provided by other devices or networks.
287287
- SO.LimitExternalImpact
288288
- :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
290290
- ⚠ Partial
291291
* -
292292
- SO.PreventAttackPropagation
@@ -301,7 +301,7 @@ The table below summarises dfetch's implementation of each prEN 40000-1-4 Securi
301301
* - **ECR-J** — Be designed, developed and produced to limit attack surfaces, including external interfaces.
302302
- SO.ReduceAttackSurface
303303
- :ref:`C-001 <c-001>`, :ref:`C-003 <c-003>`, :ref:`C-004 <c-004>`, :ref:`C-007 <c-007>`, :ref:`C-008 <c-008>`
304-
- 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)
305305
- ⚠ Partial
306306
* - **ECR-K** — Be designed, developed and produced to reduce the impact of an incident using appropriate exploitation mitigation mechanisms and techniques.
307307
- SO.ReduceImpactOfIncident
@@ -362,9 +362,9 @@ to the end user is the responsibility of the user's package manager.
362362
**ECR-C SO.UserUpdateNotification** — ``dfetch check`` and ``dfetch environment``
363363
both call ``newer_version_available()`` (``dfetch/util/github_version_check.py``),
364364
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.
368368

369369
**ECR-M SO.SecureDataDeletion** — No dfetch-specific control is needed. DLM-1 is
370370
satisfied by design: dfetch stores no personal data, credentials, or cryptographic

0 commit comments

Comments
 (0)