プロフィール

kosaki

Author:kosaki
連絡先はコチラ

ブログ検索
最近の記事
最近のコメント
最近のトラックバック
リンク
カテゴリー
月別アーカイブ
RSSフィード
FC2ブログランキング

Alanは相変わらず漢らしいなー このエントリーをはてなブックマークに追加

Ubuntuの中の人が以下のようなパッチを投稿した。
まあ、ようするにprctl(PR_SET_NAME)つかうとtask->commにエスケープシーケンス送り込む事ができて
それを利用して adminをだます事が出来るので良くないって主張だったわけです。


Subject: [PATCH v2] sanitize task->comm to avoid leaking escape codes
From: Kees Cook <[email protected]>

Through get_task_comm() and many direct uses of task->comm in the kernel,
it is possible for escape codes and other non-printables to leak into
dmesg, syslog, etc. In the worst case, these strings could be used to
attack administrators using vulnerable terminal emulators, and at least
cause confusion through the injection of \r characters.

This patch sanitizes task->comm to only contain printable characters
when it is set. Additionally, it redefines get_task_comm so that it is
more obvious when misused by callers (presently nothing was incorrectly
calling get_task_comm's unsafe use of strncpy).

Signed-off-by: Kees Cook
---
v2:
- don't use a helper #define, just fix the arguments and callers
- add missing ctype.h include that got lost during testing.
---
drivers/char/tty_audit.c | 2 +-
fs/exec.c | 18 ++++++++++++++----
fs/proc/array.c | 4 ++--
include/linux/sched.h | 2 +-
kernel/auditsc.c | 2 +-
kernel/capability.c | 4 ++--
kernel/fork.c | 2 +-
kernel/sys.c | 2 +-
8 files changed, 23 insertions(+), 13 deletions(-)

(省略)

void set_task_comm(struct task_struct *tsk, char *buf)
{
+ size_t i;
+
task_lock(tsk);

/*
@@ -955,7 +957,15 @@ void set_task_comm(struct task_struct *tsk, char *buf)
*/
memset(tsk->comm, 0, TASK_COMM_LEN);
wmb();
- strlcpy(tsk->comm, buf, sizeof(tsk->comm));
+
+ /* sanitize non-printable characters */
+ for (i = 0; buf[i] && i < (sizeof(tsk->comm) - 1); i++) {
+ if (!isprint(buf[i]))
+ tsk->comm[i] = '?';
+ else
+ tsk->comm[i] = buf[i];
+ }
+
task_unlock(tsk);
perf_event_comm(tsk);
}


ここで、Alan Cox登場。雄々しく答えて曰く

  「そんな腐ったターミナルエミュレータ使うな」




関連記事
linux | 【2010-06-30(Wed) 16:42:09】 | Trackback:(0) | Comments:(0)

MM Summit に inviteされた このエントリーをはてなブックマークに追加

On behalf of the 2010 Programme Committee, I'd like to invite you to
participate in the Linux Memory Management summit (jointly co-located
with the Storage and Filesystem summit) in Boston, MA, USA, on 8-9
August. You can find full details (including hotel) here:

http://events.linuxfoundation.org/events/lsf-summit

Please also register for the summit here:

http://events.linuxfoundation.org/events/lsf-summit/register
(以下略)



まあ、旅費が手配できるか分からんのでなんとも言えないけど、どうしよう。



関連記事
linux | 【2010-06-30(Wed) 09:38:57】 | Trackback:(0) | Comments:(0)

さよなら CONFIG_4KSTACKS このエントリーをはてなブックマークに追加

XFSスタックオーバーフロー問題の余波でCONFIG_4KSTACKSが消えました。といっても従来の
8Kスタックとは異なりプロセス8K + IRQ 4K のハイブリッドスタックに以降することになった。

ただし、元々4Kスタックがなかった非x86アーキではスタックサイズが変わってないので
全然本質的な解決じゃない

関連記事
linux | 【2010-06-29(Tue) 19:31:48】 | Trackback:(0) | Comments:(6)

64bit linux上で32bit rubyをビルドする方法 このエントリーをはてなブックマークに追加

./configure --with-gcc='gcc -m32' --disable-install-doc

関連記事
ruby | 【2010-06-26(Sat) 18:08:14】 | Trackback:(0) | Comments:(0)

MAD_HWPOISON このエントリーをはてなブックマークに追加

さいきん、madvise()にいくつか追加があったのでman pageの査読をしている。
そのなかでHugh Dickinsが言った言葉

> @@ -221,8 +266,10 @@ for file access.
> .BR MADV_REMOVE ,
> .BR MADV_DONTFORK ,
> .BR MADV_DOFORK ,
> +.BR MAD_HWPOISON ,

Oh, I absolutely agree with you, MAD_HWPOISON indeed;
but Andi might prefer MADV_HWPOISON.



そこに absolutely agree するのかよ :-)

関連記事
英語 | 【2010-06-22(Tue) 18:35:20】 | Trackback:(0) | Comments:(2)
  1. 無料アクセス解析