[3140] in Kerberos-V5-bugs

home help back first fref pref prev next nref lref last post

krb5-admin/777: kadm5.acl too generous with permissions on POLICIES

daemon@ATHENA.MIT.EDU (crawdad@fnal.gov)
Tue Oct 26 18:54:19 1999

Resent-From: gnats@rt-11.MIT.EDU (GNATS Management)
Resent-To: krb5-unassigned@RT-11.MIT.EDU
Resent-Reply-To: krb5-bugs@MIT.EDU, crawdad@gungnir.fnal.gov
Message-Id: <199910262213.RAA20271@gungnir.fnal.gov>
Date: Tue, 26 Oct 1999 17:13:46 -0500 (CDT)
From: crawdad@fnal.gov
Reply-To: crawdad@gungnir.fnal.gov
To: krb5-bugs@MIT.EDU
Cc: krbdev@MIT.EDU, crawdad@fnal.gov


>Number:         777
>Category:       krb5-admin
>Synopsis:       add/delete/modify permission on ANY princ => ALL policies
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    krb5-unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   unknown
>Arrival-Date:   Tue Oct 26 18:54:00 EDT 1999
>Last-Modified:
>Originator:     Matt Crawford
>Organization:
	Fermilab
>Release:        krb5-1.0.6 krb5-1.1
>Environment:
System: SunOS gungnir.fnal.gov 5.5.1 Generic_103640-24 sun4u sparc SUNW,Ultra-1
Architecture: sun4

>Description:
	If a subject principal P has add, delete, modify or inquire
	privilege for any target principal T, then P can perform
	the corresponding operation (a, d, m, i) on all policies.
	This applies to 1.0.6 and 1.1.
>How-To-Repeat:
	Add a line "name@REALM d name@REALM" to kadm5.acl and, as that
	principal, delete a policy.  Use caution.
	Specific example:
	   ...kadm5.acl contains "person@REALM acdi person/cron@REALM"...
	% kadmin -p person
	Enter password:
	kadmin:  addpol -maxlife "3 days" -minlength 27 -minclasses 5 sillypol
	kadmin:  listpols
	get_policies: Operation requires ``list'' privilege while retrieving list.
	kadmin:  getpol sillypol
	Policy: sillypol
	Maximum password life: 259200
	Minimum password life: 0
	Minimum password length: 27
	Minimum number of password character classes: 5
	Number of old keys kept: 1
	Reference count: 0
	kadmin:  getpol default
	Policy: default
	Maximum password life: 34560000
	Minimum password life: 172800
	Minimum password length: 10
	Minimum number of password character classes: 2
	Number of old keys kept: 5
	Reference count: 31
	kadmin:  delpol sillypol
	Are you sure you want to delete the policy "sillypol"? (yes/no): yes
	kadmin:  getpol sillypol
	get_policy: Policy does not exist while retrieving policy "sillypol".
	kadmin:  q

>Fix:
	Workaround: if any such permissions must be given, precede them by
	a negative permission entry "name@REALM ADMCIL no/such/princ@REALM".
	Illustration:
	   ...kadm5.acl now countains "person@REALM ADMCIL no/such/princ@REALM"
	   before the above entry...
	% kadmin -p person
	Enter password:
	kadmin:  addpol -maxlife "3 days" -minlength 27 -minclasses 5 sillypol
	add_policy: Operation requires ``add'' privilege while creating policy "sillypol".
	kadmin:  q


	Better fix: in acl_find_entry(), if dest_princ is NULL, accept
	only a match with entry->ae_target NULL or "*".
>Audit-Trail:
>Unformatted:

home help back first fref pref prev next nref lref last post