Oprogramowanie Drupal w wersji poniżej 7.32 jest podatne na ataki SQL Injection, znaleziony błąd został dodany już na początku 2011 roku i tkwił niezauważony przez 3 lata, a ostatecznie został wykryty podczas wykonywania audytu kodu źródłowego przez niemiecką firmę SektionEins.
Luka znajduje się w API Drupala, którego jednym z głównych celów jest eliminacja ataków typu SQL Injection. Znaleziony błąd pozwala atakującemu na wykonanie specjalnie spreparowanych zapytań SQL, które pozwalają na ominięcie nadanych uprawnień i wykonanie dowolnego kodu PHP nie będąc zalogowanym na stronie.
Luka została naprawiona w najnowszej wersji Drupala 7.32. Zaleca się wykonanie aktualizacji oprogramowania do najnowszej wersji, a w przypadku problemów, należy skorzystać z tej poprawki.
Zawartość pliku z poprawką:
diff --git a/includes/database/database.inc b/includes/database/database.inc
index f78098b..01b6385 100644
--- a/includes/database/database.inc
+++ b/includes/database/database.inc
@@ -736,7 +736,7 @@ abstract class DatabaseConnection extends PDO {
// to expand it out into a comma-delimited set of placeholders.
foreach (array_filter($args, 'is_array') as $key => $data) {
$new_keys = array();
- foreach ($data as $i => $value) {
+ foreach (array_values($data) as $i => $value) {
// This assumes that there are no other placeholders that use the same
// name. For example, if the array placeholder is defined as :example
// and there is already an :example_2 placeholder, this will generate
Czy ten artykuł był pomocny?
Oceniono: 0 razy