diamond-scan: cpython/django O(2^D) hierarchy traversal; flask/rails/ruby/phoenix CLEAN
cpython-0001: pydoc.allmethods unconditional __bases__ recursion, no visited guard cpython-0002: turtle.__methodDict unconditional __bases__ recursion, fires at import cpython-0003: idlelib.rpc._getmethods unconditional __bases__ recursion, IDLE debug path django-0006: migrations.state.flatten_bases abstract model diamond traversal (comment in source acknowledges duplicates) flask/rails/ruby/phoenix: CLEAN
This commit is contained in:
parent
77a5410eee
commit
4d4c256673
8 changed files with 405 additions and 0 deletions
16
defects/phoenix/patch/CLEAN.md
Normal file
16
defects/phoenix/patch/CLEAN.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Phoenix — CWE-407 Diamond Traversal Scan: CLEAN
|
||||
|
||||
Scanned: 2026-03-30
|
||||
|
||||
## Files examined
|
||||
|
||||
- `lib/phoenix/router.ex` — plug pipeline compilation uses Elixir macros; no recursive module hierarchy traversal
|
||||
- `lib/phoenix/endpoint.ex` — module configuration, no class hierarchy traversal
|
||||
- `lib/phoenix/channel.ex` — no recursive module traversal
|
||||
|
||||
## Result
|
||||
|
||||
No diamond recursion defects found. Elixir's module system is flat — modules do not have a
|
||||
mutable inheritance hierarchy that can form diamonds. `use Phoenix.Router` and related macros
|
||||
expand at compile time into a flat list of plugs. No recursive `ancestors`/`__bases__` pattern
|
||||
exists in Elixir/Phoenix.
|
||||
Loading…
Add table
Add a link
Reference in a new issue