lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081118150024.GD30358@elte.hu>
Date:	Tue, 18 Nov 2008 16:00:24 +0100
From:	Ingo Molnar <mingo@...e.hu>
To:	Jan Beulich <jbeulich@...ell.com>
Cc:	heukelum@...tmail.fm, Andi Kleen <andi@...stfloor.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	Alexander van Heukelum <heukelum@...lshack.com>,
	Glauber Costa <gcosta@...hat.com>,
	LKML <linux-kernel@...r.kernel.org>,
	Nick Piggin <nickpiggin@...oo.com.au>,
	"H. Peter Anvin" <hpa@...or.com>,
	Roland McGrath <roland@...hat.com>
Subject: Re: [RFC,v2] x86_64: save_args out of line


* Jan Beulich <jbeulich@...ell.com> wrote:

> >>> Ingo Molnar <mingo@...e.hu> 18.11.08 15:03 >>>
> >* Jan Beulich <jbeulich@...ell.com> wrote:
> >> No tool, if you mean that. Extensive changes I verify by looking at 
> >> the dump, problems are usually found only when back traces don't 
> >> come out right.
> >
> >that's a fundamental weakness of all the CFI annotations.
> >
> >It is outright wrong to waste humans on this mechanic task: as it is 
> 
> This part I agree to.
> 
> >abundantly clear to GAS where we change a stack pointer and by how 
> >much - it could emit magic annotations automatically just as much.
> >
> >So if you care about it, please fix this in the tools space. The 
> >entry_64.S impact of finegrained annotations is just too ugly for 
> >things like this.
> >
> >One limited exception is for basic stack frames where we do syscalls 
> >or call into other C code. (i.e. the patch proposed here would have to 
> >do that limited annotation)
> >
> >But the per instruction annotations currently in that code are madness 
> >and must either be cleaned up significantly via the use of GAS macros 
> >(so that all stack pointer manipulations go via a single macro 
> >invocation), or be completely auto-generated by GAS.
> 
> Making gas auto-generate this is not really possible (much like ia64 
> requires the annotations to be inserted manually), mainly because 
> gas can't know whether e.g. a push of a register is in order to 
> preserve its value, or for some other purpose.

but that's the exception. Most of the annotations could be 
auto-generated.

> I do have a set of macros for this in nlkd, maybe (as you're asking 
> for it) I should get them out of there (and convert them to AT&T 
> syntax).

i'd definitely like to have a look ...

if you can make this clean enough, most of the resistence to CFI 
annotations will go away.

The requirements is extreme cleanliness: single line in the source 
that gets us _both_ the instruction and the annotation. Also always 
insert the proper frame pointer as well, when we call into C. Make it 
as hard as possible to mess up the annotations - we could even run a 
build-time grep on the .S files that matter to see whether there's any 
(common) "naked" stack-manipulating instructions that shouldnt be 
used.

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ