Bug 19430 - univention-join Robustheit verbessern
univention-join Robustheit verbessern
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Join (univention-join)
UCS 2.4
Other Linux
: P5 normal (vote)
: UCS 3.1
Assigned To: Philipp Hahn
Arvid Requate
: interim-3
: 26516 28231 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-08-12 19:44 CEST by Philipp Hahn
Modified: 2012-12-12 21:10 CET (History)
4 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:
hahn: Patch_Available+


Attachments
Aufräumarbeiten (45.64 KB, patch)
2010-08-12 19:44 CEST, Philipp Hahn
Details | Diff
Verbesserungen 2 (39.61 KB, patch)
2010-09-16 09:48 CEST, Philipp Hahn
Details | Diff
verbesserungen_3 (5.42 KB, patch)
2012-11-15 18:47 CET, Arvid Requate
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Philipp Hahn univentionstaff 2010-08-12 19:44:34 CEST
Created attachment 2585 [details]
Aufräumarbeiten

univention-join hat mehrere Unzulänglichkeiten:
- Die per "-dcpwd <dateiname>" übergebenen Datei wird 1:1 auf den Server
kopiert und dort anschließend gelöscht. Ggf. vorher auf dem Server existierende
Dateien können so verloren gehen!
- Locale-abhängige Tests (ifconfig)
- fehlender ldapsearch-wrapper bei Suche nach LDAP-NamingContexts
- unzureichendes Quoting der Variablen
- mangelnde Fehlerbehandlung
- unübersichtlicher, gewachsener und ineffizienter Code
- fehlerhafte Initialisierung von TYPE

Hier der erste Teil der Verbesserung:
 check_join_status.sh        |   45 +++---
 debian/changelog            |    9 +
 debian/control              |    5
 univention-join             |  320
++++++++++++++++++++++----------------------
 univention-run-join-scripts |   47 ++----
 univention-server-join      |  165 ++++++++++------------
 6 files changed, 300 insertions(+), 291 deletions(-)
Comment 1 Philipp Hahn univentionstaff 2010-08-13 08:24:52 CEST
(In reply to comment #0)
> univention-join hat mehrere Unzulänglichkeiten:
> - Die per "-dcpwd <dateiname>" übergebenen Datei wird 1:1 auf den Server
> kopiert und dort anschließend gelöscht. Ggf. vorher auf dem Server existierende
> Dateien können so verloren gehen!

Folgendes geht schief, weil univention-join probiert, die Datei mit dem Passwort als "Administrator" nach "/root/pwd" zu kopieren:
  echo -n GEHEIM >/root/pwd
  univention-join -dcaccount Administrator -dcpwd /root/pwd
Nutzt man statt dessen ein öffentliches Verzeichnis wie /tmp/, funktioniert es:
  echo -n GEHEIM >/tmp/pwd
  univention-join -dcaccount Administrator -dcpwd /tmp/pwd
Comment 2 Philipp Hahn univentionstaff 2010-09-16 09:48:37 CEST
Created attachment 2697 [details]
Verbesserungen 2

Löst unter anderem das Problem, wenn $TMPDIR auf einem zu joinenden System gesetzt ist, was dazu führt, daß $(mktemp) dann seine Dateien unterhalb von $TMPDIR erzeugt, was beim kopieren des Passworts auf den Server dann scheitert.

Plus ganz viele Quoting-Korrekturen, insbesondere beim Aufruf von univention-ssh.
Comment 3 Stefan Gohmann univentionstaff 2012-06-27 11:37:20 CEST
Sollte im Zuge von Bug #27753 mit behoben werden.
Comment 4 Philipp Hahn univentionstaff 2012-08-14 19:36:38 CEST
Patch wurde erstmal eingespielt, weil der u.a. das Passwortproblem aus Bug #26516.

svn34833, univention-join_5.0.1-1.380.201208141908

Changelog: svn14314
\item Using a password file for joining UCS systems has been fixed (\ucsBug{19430}).
Comment 5 Philipp Hahn univentionstaff 2012-08-16 09:21:49 CEST
*** Bug 28231 has been marked as a duplicate of this bug. ***
Comment 6 Lukas Walter univentionstaff 2012-09-05 09:58:13 CEST
Hier hat sich ein Typo eingeschlichen.

univention-server-join übergibt dem udm jetzt die Option "--bindpw" statt "--bindpwd".
Comment 7 Philipp Hahn univentionstaff 2012-09-05 11:28:25 CEST
(In reply to comment #6)
> Hier hat sich ein Typo eingeschlichen.
> 
> univention-server-join übergibt dem udm jetzt die Option "--bindpw" statt
> "--bindpwd".

Der Bug ist eigentlich eine Folge von der Änderung durch Bug #19978, von daher schließe ich diesen Bug wieder. Genauerer Hintergrund siehe Bug #19978 commet 6
Comment 8 Philipp Hahn univentionstaff 2012-09-18 08:31:16 CEST
*** Bug 26516 has been marked as a duplicate of this bug. ***
Comment 9 Arvid Requate univentionstaff 2012-11-15 18:47:29 CET
Created attachment 4797 [details]
verbesserungen_3

Ein paar weitere Vorschläge.
Comment 10 Arvid Requate univentionstaff 2012-11-19 13:03:56 CET
Vorschläge aus Comment 9 sind als Bug 29275 ausgelagert.

Verified:
 * Unsicherheit in der Handhabung der Remote-Temporärdatei ist behoben
 * Massive Quoting-Verbesserung zum Schutz gegen Code-Injection OK
 * Verbesserte Existenzprüfung von obligatorischen Parametern OK
 * Funktionstest OK
 * Changelog OK.
Comment 11 Stefan Gohmann univentionstaff 2012-12-12 21:10:06 CET
UCS 3.1-0 has been released: 
 http://forum.univention.de/viewtopic.php?f=54&t=2125

If this error occurs again, please use "Clone This Bug".