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
Copy file name to clipboardExpand all lines: models/Safety Hazard.md
+22-7Lines changed: 22 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,6 +48,7 @@ Our primary goal is to keep HDF5 files, tools, and workflows out of unsafe state
48
48
-**Availability:** files and tools should fail safe, remain recoverable where possible, and avoid cascading breakage.
49
49
-**In-memory safety:** internal structures should not drift into states that cause wrong writes, wrong frees, or silent corruption.
50
50
-**Privacy protection:** metadata, logs, temporary artifacts, and extension behavior should not leak sensitive information.
51
+
-**Long-term interpretability:** files designated for retention remain readable and semantically interpretable for their retention horizon, either directly or through a preserved fallback path.
51
52
52
53
## 2) HDF5 Control System (H5CS) model
53
54
@@ -68,8 +69,8 @@ flowchart LR
68
69
69
70
### What matters in practice
70
71
71
-
-**Controllers:** application code, HDF5 API layers, metadata cache, free-space manager, chunk cache, plugin loaders, and parts of the OS or filesystem stack that influence persistence.
72
-
-**Control actions:** emit durable bytes, mark dirty or clean, evict entries, reuse free space, parse structures, load extensions, and signal durability.
72
+
-**Controllers:** application code, HDF5 API layers, metadata cache, free-space manager, chunk cache, plugin loaders, parts of the OS or filesystem stack that influence persistence, archive curator, package/distribution manager, plugin registry, signing/CA infrastructure, and integrator.
73
+
-**Control actions:** emit durable bytes, mark dirty or clean, evict entries, reuse free space, parse structures, load extensions, and signal durability, record dependency manifest, archive plugin artifact, verify compatibility, transcode to archival profile, and revalidate/migrate before support ends.
73
74
-**Controlled state:** on-disk metadata and raw data, in-memory caches and indices, in-flight writes, temporary files, logs, and plugin search paths.
@@ -119,6 +120,9 @@ Describe hazards as state conditions, not events. Good hazard statements look li
119
120
- in-memory state diverges from disk without a safe replay or repair path
120
121
- durability-signaling actions can complete before required bytes are actually safe
121
122
- sensitive metadata can escape through logs or artifacts
123
+
- the file requires an external decoder that is unavailable or unverifiable
124
+
- plugin semantics are required but not durably recorded
125
+
- a compatible decoder exists but cannot be rebuilt or trusted
122
126
123
127
### Step 3 - Enumerate unsafe control actions
124
128
@@ -210,6 +214,16 @@ Record the hazard in the register and tag it with one or more SSP categories fro
210
214
- Common tags: **PRV**, **OPS**
211
215
- Typical controls: logging review, redaction guidance, safe defaults for traces and dumps, artifact retention controls
212
216
217
+
### Example 5 - Long-term interpretability failure
218
+
219
+
**Scenario:** A filter/VOL/VFD is required to interpret retained data, but the artifact, source, key chain, or compatible runtime is no longer available.
220
+
221
+
- Trigger: time passes, dependencies rot, or the artifact is lost or compromised
222
+
- Unsafe state: the file cannot be interpreted or trusted for its retention horizon
223
+
- Loss: data becomes inaccessible or unreliable, even if the bytes are still there
224
+
- Common tags: **FMT**, **EXT**, **TCD**, **SCD**, **UNK**
225
+
- Typical controls: durable recording of plugin semantics, fallback to archival profiles, artifact preservation guidance, monitoring for vulnerable dependencies
226
+
213
227
## 5) Hazard register template
214
228
215
229
Use this template for entries in the hazard register, including updates to [audit/registry/safety-hazards](../audit/registry/safety-hazards).
@@ -261,18 +275,19 @@ Use the hazard families below as the safety vocabulary, then tag each finding wi
261
275
|**H6**| Parser ambiguity | Weak validation or underspecified interpretation allows malformed or divergent parses. |
262
276
|**H7**| Extension boundary violation | A filter, VOL, VFD, wrapper, or plugin violates assumptions that the core library depends on. |
263
277
|**H8**| Operational, privacy, or supply-chain exposure | Misconfiguration, artifact leakage, unsafe deployment, or compromised distribution introduces a safety-relevant hazard. |
278
+
|**H9**| External dependency failure | Correct interpretation of a retained HDF5 file depends on external code, artifacts, keys, or build context that later becomes unavailable, unverifiable, or incompatible. |
264
279
265
280
### Alignment table
266
281
267
282
| Vulnerability category | What it looks like in a safety review | Hazard families most often involved |
0 commit comments