[Pidgin] #15290: Compile everything with secure flags
Pidgin
trac at pidgin.im
Sun Aug 26 22:05:55 EDT 2012
#15290: Compile everything with secure flags
-------------------------------------+--------------------------------------
Reporter: DrWhax | Owner: rekkanoryo
Type: defect | Status: new
Milestone: | Component: unclassified
Version: 2.10.6 | Resolution:
Keywords: security aslr dep build |
-------------------------------------+--------------------------------------
Comment(by ioerror):
Replying to [comment:1 Robby]:
> Replying to [ticket:15290 DrWhax]:
> > I hope we can come up with a secure build sequence which will
guarantee, NX, DEP, ASLR, /GS, SafeSEH(am I missing something?)
> Who's "we" then?
Anyone involved in helping to do this kind of work - it seems like the
right answer is to add those flags to the Makefile.mingw - here's what I
recently added to pidgin-otr to improve compile and linking hardening:
{{{
CC_HARDENING_OPTIONS ?= -fstack-protector-all -fPIE -Wstack-protector
-fwrapv --param ssp-buffer-size=1
LD_HARDENING_OPTIONS ?= --dynamicbase --nxcompat -pie
}}}
Later, I just added those two variables into the proper CC and LDFLAGS:
{{{
override CFLAGS += -g -O2 -Wall $(CC_HARDENING_OPTIONS)
LDFLAGS = -Wl,--enable-auto-image-base $(LD_HARDENING_OPTIONS) -lssp
}}}
''-lssp'' is required to get the stack smashing protection libraries
linked in properly.
DrWhax - if you build with those flags, what is missing?
The full flags used in pidgin-otr are
[http://otr.git.sourceforge.net/git/gitweb.cgi?p=otr/pidgin-
otr;a=blob;f=Makefile.mingw;h=4a0bd8d034f382cecb246e4111b03c22c7548c70;hb=HEAD
here]:
{{{
# Compiling with -fPIE and linking with -pie causes the plugin to crash
# on load, so we'll skip those.
CC_HARDENING_OPTIONS ?= -fstack-protector-all -Wstack-protector -fwrapv \
--param ssp-buffer-size=1 -fno-strict-overflow -Wall -Wextra \
-Wno-unused-parameter -Wno-missing-field-initializers -Wformat-
security
# In theory, we'd also like the following:
# LD_HARDENING_OPTIONS ?= -dynamicbase --nxcompat -pie -z relro -z now
LD_HARDENING_OPTIONS ?= --dynamicbase --nxcompat
}}}
And we then set things up accordingly:
{{{
LDFLAGS = -Wl,--enable-auto-image-base $(LD_HARDENING_OPTIONS)
LDLIBS = -lssp
override CFLAGS += -g -O2 -Wall $(CC_HARDENING_OPTIONS)
}}}
If any of that works, I think it should be trivial to generate a patch
that adds those hardening options.
--
Ticket URL: <http://developer.pidgin.im/ticket/15290#comment:2>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list