[Samba-it] Samba3, interfaccia web di cambio password.

Marco Gaiarin gaio at sv.lnf.it
Tue Jun 24 03:42:44 MDT 2014


> 	https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=700729
> 	https://bugzilla.samba.org/show_bug.cgi?id=9668
> e visto che swat è deprecated, a nessuno sembra avere voglia di
> sistemare il problema. ;(

Ok, ho seguito il suggerimento, ho provato a togliere la patch per il
CVE-2013-0214 (http://www.samba.org/samba/security/CVE-2013-0214), ed
effettivamente SWAT ha ripreso a funzionare.

Fatto salvo che si può fare così (se qualcuno sapesse la password di
qualcun'altro, gli attack vector potrebbero essere altri, non solo
SWAT), non capisco la patch, che allego.

Io vedo che:

1) in source3/web/cgi.c ''funzionizza'' un pezzo di codice, creando una
 funzione (cgi_nonce()) per poi riutilizzarla; dubito che da qui
possano nascere problemi.
La funzione (o il pezzo di codice che c'era prima ;) estraggono la
password di root, e se è vuota ne generano una random (che salva nel
PDB).

2) source3/web/swat_proto.h, aggiunge la funzione di cui sopra, ibid.

3) in source3/web/swat.c, invece, viene aggiunta una chiamata alla
 nuova funzione, che in buona sostanza aggiunge alla variabile 'md5_ctx'
un ulteriore pezzo, estratto con la funzione di cui sopra.

A naso in 3) cgi_nonce() viene eseguita quando SWAT ha già lasciato i
permessi di root, quindi cgi_nonce() non riesce a leggere e a scrivere
nel PDB (quindi gli errori nel log) ma soprattutto genera ogni volta un
codice diverso, quindi non va (mi vien da dire non si preserva la
sessione).

Quindi è palese che questa patch ha magari risolto un problema, ma in
pratica ammazzato SWAT che ora non funzione se non da utente root.


Non ho capito, se io faccio una cosa stile:

 if ( strcmp(username, "root") {
	MD5Update(&md5_ctx, (uint8_t *)nonce, strlen(nonce));
 }

ovvero ''aggiungo'' l'hash aggiuntivo solo se l'utente è root, commetto
peccato grave?


Inoltre, non capisco dove/come swat droppa i privilegi; l'altra
alternativa è sempre quella di eseguire 'MD5Update(&md5_ctx, (uint8_t
*)nonce, strlen(nonce));' ''prima'', salvarsi il risultato da qualche
parte e usarlo dove serve poi.


Grazie delle info che vorrete darmi...

-- 
dott. Marco Gaiarin				        GNUPG Key ID: 240A3D66
  Associazione ``La Nostra Famiglia''                    http://www.sv.lnf.it/
  Polo FVG   -   Via della Bontà, 7 - 33078   -   San Vito al Tagliamento (PN)
  marco.gaiarin(at)lanostrafamiglia.it   t +39-0434-842711   f +39-0434-842797

		Dona il 5 PER MILLE a LA NOSTRA FAMIGLIA!
	   http://www.lanostrafamiglia.it/chi_siamo/5xmille.php
	(cf 00307430132, categoria ONLUS oppure RICERCA SANITARIA)


More information about the samba-it mailing list