php / php/php-src

Can open files using invalid paths

Offen
#16,622 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Category: Filesystem Category: Streams
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.2k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

The path / /../ /../ /../ /../path/to/file is considered invalid by some file check functions:

<?php

is_file("/ /../ /../ /../ /../path/to/file"); // -> false
realpath("/ /../ /../ /../ /../path/to/file"); // -> false
filesize("/ /../ /../ /../ /../path/to/file"); // -> false

However, the path can actually be used to open /path/to/file :

<?php
echo file_get_contents("/ /../ /../ /../ /../path/to/file");

$res = fopen("/ /../ /../ /../ /../path/to/file", "r");
echo fread($res, 1024);
PHP Version

< 8.3

Operating System

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Den genauen Pfad aus dem Issue reproduzieren und file_get_contents() und fopen() mit is_file(), realpath() und filesize() vergleichen. Da keine Quelldateien oder Tests genannt sind, zunächst die Einstiegspunkte zum Öffnen von PHP-Dateien und zur Pfadvalidierung finden und dann Tests hinzufügen, die zeigen, ob diese APIs den Pfad konsistent behandeln sollten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, php
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.