Ez most esett be Full-Disclosure-re a RedTeam Pentesting jóvoltából:
A népszerű Dovecot POP3/IMAP szerver online wiki-jében többek között arról is olvashatunk, hogyan kell megoldani a helyi kézbesítést Eximmel karöltve, ezt a mankót pedig minden bizonnyal sok rendszergazda használta már - a hivatalos dokumentáció csak nem téved!
Nos, ez így is van, a konfig működőképes, csak éppen korábbi változatában távoli kódfuttatásra adott lehetőséget:
dovecot_deliver: debug_print = "T: Dovecot_deliver for $local_part () $domain" driver = pipe # ... command = /usr/lib/dovecot/deliver -e -k -s \ -f "$sender_address" -a "$original_local_part () $original_domain" use_shell
A probléma a fenti néhány sorral az, hogy a use_shell beállítás hatására a command paraméter értéke a megfelelő változók behelyettesítése után átadódik a shellnek, a $sender_address-t pedig a támadó (a beérkező e-mail küldője) kontrollálja - bumm, távoli kódfuttatás!
Vajon hány kiszolgáló lehet ehhez hasonlóan konfigurálva? Ha Dovecot-t üzemeltettek, nézzétek át a beállításokat!
Friss (20130504): Az Immunity közölt egy statisztkát a Dovecot+Exim konfigurációk elterjedtségéről.