Copilot commented on code in PR #3845:
URL: https://github.com/apache/iceberg-python/pull/3845#discussion_r3848111974


##########
SECURITY-THREAT-MODEL.md:
##########
@@ -208,6 +224,94 @@ service are usually outside Iceberg Python's primary 
security boundary.
 If the actor already has a legitimate capability that can cause the same harm,
 the new path is usually not a security issue.
 
+### 5. Reports requiring an authorized table writer or maintainer
+
+A principal who can already write or replace table metadata, set table
+properties, or write and delete table data is operating inside the capability
+set described under *Table writer or maintainer*. A report that only shows a
+new route to an effect that principal can already produce legitimately is not
+a security vulnerability in Iceberg Python.
+
+This covers, by default:
+
+- table properties that change client behavior for readers of that same table
+- metadata a writer is already entitled to replace wholesale
+- data or delete files a writer is already entitled to add
+
+Containment of what a writer commits — that manifest entries and write paths
+stay inside the table's location — is enforced by the catalog, not by this
+client. A report showing that Iceberg Python follows a path the catalog
+accepted is a hardening opportunity here and a containment question there.
+
+### 6. Resource exhaustion, allocation amplification, and algorithmic 
complexity
+
+Availability-only findings are not treated as security vulnerabilities in
+Iceberg Python by default. This includes:
+
+- out-of-memory conditions from attacker-influenced sizes or counts
+- allocation amplification, where a small input drives a large allocation
+- decompression bombs and unbounded decode output
+- superlinear or exponential algorithmic complexity on attacker-influenced
+  input
+
+Iceberg Python is a client library; the surrounding service owns request
+admission, resource limits, and process isolation. These reports are accepted
+as robustness and hardening work, not as vulnerabilities, unless they also
+demonstrate a confidentiality or integrity consequence.
+
+### 7. Out-of-bounds access and native memory-safety findings
+
+Bounds-checking gaps in native or compiled decode paths, including the Cython
+Avro decoders, are treated by default as parser hardening rather than as
+security vulnerabilities. Crashes, aborts, and read overruns that terminate the
+process fall under this rule.
+
+This applies to the root cause, not to a theory about the consequence. A report
+that a bounds check is missing is hardening. A report that demonstrates
+specific memory contents reaching an attacker-observable channel is a different
+report, and is assessed on what it shows.
+
+### 8. Configuration loaded from documented default locations
+
+Iceberg Python loads configuration from documented default locations, including
+`.pyiceberg.yaml` resolved from the working directory, the user home directory,
+and `PYICEBERG_HOME`, together with `PYICEBERG_`-prefixed environment
+variables. This resolution order is public, documented behavior and follows the
+same pattern as configuration loading in widely used tooling across the

Review Comment:
   The listed config-file discovery order here appears inverted. The 
implementation and docs search `.pyiceberg.yaml` in `PYICEBERG_HOME`, then the 
user home directory, then the current working directory (see 
`pyiceberg/utils/config.py` search_dirs and `mkdocs/docs/configuration.md`). 
Please update this paragraph so the documented order matches actual behavior.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to