Разработчики проекта X.Org объявили (http://lists.freedesktop.org/archives/xorg-announce/2011-Apr...) об обнаружении критической уязвимости в утилите xrdb, позволяющей локальному злоумышленнику выполнить свой код с привилегиями суперпользователя. Организация запуска кода производится через передачу специально оформленного имени хоста, содержащего экранированные спецсимволы. Выполнение кода производится в момент запуска дисплейного менеджера, в котором для загрузки базы ресурсов от имени суперпользователя используется утилита xrdb.Проблемное имя хоста может быть передано двумя путями: через DHCP или xdmcp. В первом случае злоумышленник должен иметь административный доступ к DHCP-серверу или физический доступ к локальному сегменту сети. Во втором случае на атакуемой системе должна присутствовать возможность удаленного входа по xdmcp и злоумышленник должен иметь локальный аккаунт в системе.
Проблему обнаружил Себастьян Крамер (Sebastian Krahmer) из команды по обесп...URL: http://lists.freedesktop.org/archives/xorg-announce/2011-Apr...
Новость: http://www.opennet.me/opennews/art.shtml?num=30142
вейландопейсатели зря стараются. У иксов даже с такими мелкими багами безупречная репутация в отличие от их поделки.
А их ещё не закопали?
Без ssh -X у wayland нет пути.
от не поверишь, сколько лет в консоли, а ssh -X использовал всего пару раз.
Навскидку, халявная интеграция Skype и Asterisk настраивается только через ssh -X, если нет желания платить $ digium'у и Skype'у за каждый канал, и на сервере запускается по экзмепляру Skype-а.
У любителей проприетарщины вечно какой-то геморрой на ровном месте :)
а не любителям проприетарщины графика с сервера уже не нужна? :Dзыж
это может показаться сложным, но вообразите - для примера, есть слабая станция, на которой слегка геморно запустить майю/блэндер/... вместо этого они пускаются на сервере. а если удалённо, то и через ssh -CX[или Y]
Просто роутинг звонков с участием иксов и ssh - cильно напоминает удаление гланд, через жопу, автогеном, но только применительно к компьютерам :).
Или когда "там" куча данных либо ресурсов для их обработки.Регулярнейшим образом запускаю удалённо (ssh -Y) на домашней машинке recoll для поиска по почтовому архиву, nxclient для тестирования свежевыпеченых исошек на серверах и ещё по мелочи.
или когда "да не хочу я вон ту шнягу себе ставить". ;)вполне сукурно, быстро и удобно.
Вроде недавно была новость про то, что gtk уже через браузер умеет. ;)
легко заменяется на Xvnc например.
это типа так:
>ssh -C -L 4961:localhost:5961 my.dns-name.comhttp://linuxreviews.org/howtos/xvnc/#toc13
:D
> легко заменяется на Xvnc например.Настраивать xvnc - порядочный гемор. А иксы через ssh обычно работают "из коробки".
>от не поверишь, сколько лет в консоли, а ssh -X использовал всего пару раз.это типа такое доказательство того, что трафик вайланда в шифрации не нуждается?
Это высказывание против использования X11 протокола по сети. А какой трафик в wayland требуется шифровать?
весь.
зыж
>Это высказывание против использования X11 протокола по сети.неа.
это описание своего не большого опыта и не более.
> от не поверишь, сколько лет в консоли, а ssh -X использовал всего
> пару раз.Если из этой фразы убрать "-X", ее значение не особо изменится. Что ж тогда, ssh на помойку волочь?
hint: личный опыт Васи Пупкина - это еще не истина в последней инстанции.
http://www.linux.org.ru/polls/polls/5937580
Сравнил систему которая энцать леть в разрабатывается и допиливается с наколеночным проектом, на который лишь относительно недавно обратили внимание и который возник так-же недавно.
Естественно у иксов и репктация, и всё такое. Но у Вэйленда есть свои плюсы. Посмотрим, что будет лет через пять-десять.
Причём здесь они? И ещё, посмотрите в "похожих новостях" о том, что X-сервер можно запустить без root-прав.
правильно, нахер нам нужен вообще новый софт, будем юзать всякую херню которая проектировалась лет эдак 20 назад, и не важно что работает там всё через жопу, главное что юниксвейно, на первый взгляд.
> главное что юниксвейно, на первый взглядЭто иксы-то юниксвейны?
вяленд куда больший юниксвей
с чего бы вдруг?
Вероятно потому, что пытается выполнять ровно одну задачу и больше ни куда не лезет и ни чего иного делать не пытается. Может он даже слишком минималистичен, но иксы — комбайн. Причём от рождения.
одну?!!! акстись.
а вот типа так вот
$ wayland | tar -cz - | ssh host.name tar -xz - | wayland
сможет? не? :Dзыж
вы хоть диаграмму этого вайланда видели?
http://wayland.freedesktop.org/architecture.html
сказать что вайланд выполняет одну задачу, это всё равно что сказать что мой ноут тоже выполняет одну задачу - числа считает.
> Это иксы-то юниксвейны?
> вяленд куда больший юниксвейПо-моему, вы путаете юниксвей (модульность и сетевая прозрачность - X) с виндовс-веем (мы такого нагородим в наш монолитный супер-комбайн, а на структуру пофиг - wayland).
> правильно, нахер нам нужен вообще новый софт, будем юзать всякую херню которая
> проектировалась лет эдак 20 назадНу так давайте сразу выкинем все что имеет отношение к UNIX т.к. он проектировался 60х. Нафиг вообще все это старье.
> и не важно что работает там
> всё через жопу, главное что юниксвейно, на первый взгляд.Пруф или не было? Важно что там все действительно работает и работает не первый год, а вейланд пока неюзабелен и много чего не умеет (И крики такого школо-крикуна как ты при этом не учитывается.). А все что он умеет это предоставить якобы быстроту взамен функционала.
Для Ubuntu Natty уже похоже есть обновление
https://launchpad.net/~xorg-edgers/+archive/ppa/+sourcepub/1...
Ты б ещё из гита собрать посоветовал. Эджерсов подключать — себя не любить. Это ж ветка для тестирования.
- if (!isalpha(c) && !isdigit(c) && c != '_')
+ if (!isalpha(c) && !isdigit(c) && c != '_' && c != '.' && c != ':' && c != '-')
*s = '_';Угу... =)
а не проще?if(!isalpha(c) && !isdigit(c) && !index("_-:", c))
*s = '_';
Нестандарт.
> Нестандарт.strchr()
SVID 3, POSIX, BSD 4.3, ISO 9899
Именно.
Точку потерял. :)
и о чем "угу"? что смущает в старой или новой стоке?
Да не, код нормальный, я про:"Организация запуска кода производится через передачу специально
оформленного имени хоста, содержащего экранированные спецсимволы."Собственно, вот они, спецсимволы - ".", ":", "-".
Наоборот, раньше эти символы были запрещены и заменялись на подчёркивание, теперь допустимы.
> Наоборот, раньше эти символы были запрещены и заменялись на подчёркивание, теперь допустимы.Ну да. :)
И как я понял, экранированные оно не понимало, т.е '\:', '\.', '\- ' проскакивало.
какое экранирование куда проскакивало? ошибка-то не там была
> ошибка-то не там былаНе там, это где? :)
x11-xserver-utils-7.6+2~edgers/xrdb/xrdb.c
static void
+AddSimpleDef(String *buff, char *title)
+{
+ AddDef(buff, title, (char *)NULL);
+}
+
+static void
AddDefQ(String *buff, char *title, char *value)
{
#ifdef PATHETICCPP
@@ -407,8 +457,9 @@
else
#endif
if (value && (value[0] != '\0')) {
- AddDef(buff, title, "\"");
- addstring(buff, value);
+ AddSimpleDef(buff, title);
+ addstring(buff, "=\"");
+ addescapedstring(buff, value);
addstring(buff, "\"");
} else
AddDef(buff, title, NULL);
@@ -423,24 +474,28 @@
}
static void
-AddSimpleDef(String *buff, char *title)
+AddDefTok(String *buff, char *prefix, char *title)
{
- AddDef(buff, title, (char *)NULL);
+ char name[512];
+
+ snprintf(name, sizeof(name), "%s%s", prefix, title);
+ AddSimpleDef(buff, name);
}
static void
-AddDefTok(String *buff, char *prefix, char *title)
+AddDefHostname(String *buff, char *title, char *value)
{
char *s;
char name[512];
char c;
- snprintf(name, sizeof(name), "%s%s", prefix, title);
+ strncpy (name, value, sizeof(name)-1);
+ name[sizeof(name)-1] = '\0';
for (s = name; (c = *s); s++) {
- if (!isalpha(c) && !isdigit(c) && c != '_')
+ if (!isalpha(c) && !isdigit(c) && c != '_' && c != '.' && c != ':' && c != '-')
*s = '_';
}
- AddSimpleDef(buff, name);
+ AddDef(buff, title, name);
}
static void
@@ -460,7 +515,7 @@
addstring(buff, " -U");
} else
addstring(buff, "-U");
- addstring(buff, title);
+ addtokstring(buff, title);
}
static void
@@ -523,11 +578,11 @@
}
if (!*server || !strcmp(server, "unix") || !strcmp(server, "localhost"))
strcpy(server, client);
- AddDef(defs, "HOST", server); /* R3 compatibility */
- AddDef(defs, "SERVERHOST", server);
+ AddDefHostname(defs, "HOST", server); /* R3 compatibility */
+ AddDefHostname(defs, "SERVERHOST", server);
AddDefTok(defs, "SRVR_", server);
AddNum(defs, "DISPLAY_NUM", n);
- AddDef(defs, "CLIENTHOST", client); // Вот сюда и попадал гацкий хостнэйм
+ AddDefHostname(defs, "CLIENTHOST", client);
AddDefTok(defs, "CLNT_", client);
AddNum(defs, "VERSION", ProtocolVersion(display));
AddNum(defs, "REVISION", ProtocolRevision(display));
@@ -570,7 +625,7 @@
AddNum(defs, "Y_RESOLUTION", Resolution(screen->height,screen->mheight));
AddNum(defs, "PLANES", DisplayPlanes(display, scrno));
AddNum(defs, "BITS_PER_RGB", visual->bits_per_rgb);
- AddDef(defs, "CLASS", ClassNames[visual->class]);
+ AddDefQ(defs, "CLASS", ClassNames[visual->class]);
snprintf(name, sizeof(name), "CLASS_%s", ClassNames[visual->class]);
AddNum(defs, name, (int)visual->visualid);
switch(visual->class) {
да, здесь и выше, т.е. где добавляем def без проверки
к "if (!isalpha(c) && !isdigit(c) && c != '_' && c != '.' && c != ':' && c != '-')" отношения не имеет
а зачем нужен этот «дисплейный менеджер»? O_O
> а зачем нужен этот «дисплейный менеджер»? O_OДля допуска мышиного менеджера к оконному.
>> а зачем нужен этот «дисплейный менеджер»? O_O
> Для допуска мышиного менеджера к оконному.O_O
а я всегда думал, что это для тех дебилов, которые initlevel'ом сразу в иксы лезут. ну, дебилы на то и дебилы же.