@@ -642,29 +642,28 @@ code.
642642The following principles define what is, and is not, considered a security
643643vulnerability in this feature:
644644
645- **Attaching requires OS-level privileges. **
646- On every supported platform the operating system gates cross-process
647- memory access behind privilege checks (``CAP_SYS_PTRACE ``, root, or
648- administrator rights). A report that demonstrates an issue only after
649- these privileges have already been obtained is **not ** a vulnerability in
650- CPython, since the OS security boundary was already crossed.
651-
652- **Crashes or memory errors when reading a compromised process are not
653- vulnerabilities. **
654- A tool that reads internal interpreter state from a target process must
655- trust that memory to be well-formed. If the target process has been
656- corrupted or is controlled by an attacker, the debugger or profiler may
657- crash, produce garbage output, or behave unpredictably. This is the same
658- risk accepted by every ``ptrace ``-based debugger. Bugs in this category
659- (buffer overflows, segmentation faults, or undefined behaviour triggered
660- by reading corrupted state) are **not ** treated as security issues, though
661- fixes that improve robustness are welcome.
662-
663- **Vulnerabilities in the target process are not in scope. **
664- If the Python process being debugged has already been compromised, the
665- attacker already controls execution in that process. Demonstrating further
666- impact from that starting point does not constitute a vulnerability in the
667- remote debugging protocol.
645+ Attaching requires OS-level privileges
646+ On every supported platform the operating system gates cross-process
647+ memory access behind privilege checks (``CAP_SYS_PTRACE ``, root, or
648+ administrator rights). A report that demonstrates an issue only after
649+ these privileges have already been obtained is **not ** a vulnerability in
650+ CPython, since the OS security boundary was already crossed.
651+
652+ Crashes or memory errors when reading a compromised process are not vulnerabilities
653+ A tool that reads internal interpreter state from a target process must
654+ trust that memory to be well-formed. If the target process has been
655+ corrupted or is controlled by an attacker, the debugger or profiler may
656+ crash, produce garbage output, or behave unpredictably. This is the same
657+ risk accepted by every ``ptrace ``-based debugger. Bugs in this category
658+ (buffer overflows, segmentation faults, or undefined behaviour triggered
659+ by reading corrupted state) are **not ** treated as security issues, though
660+ fixes that improve robustness are welcome.
661+
662+ Vulnerabilities in the target process are not in scope
663+ If the Python process being debugged has already been compromised, the
664+ attacker already controls execution in that process. Demonstrating further
665+ impact from that starting point does not constitute a vulnerability in the
666+ remote debugging protocol.
668667
669668When to use ``PYTHON_DISABLE_REMOTE_DEBUG ``
670669-------------------------------------------
0 commit comments