[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: [Kde-pim] Fwd: Re: KDE 4.4.98 (4.4 RC3)
From:       Thiago Macieira <thiago () kde ! org>
Date:       2010-02-07 8:58:42
Message-ID: 201002070958.51452.thiago () kde ! org
[Download RAW message or body]


Em Domingo 7. Fevereiro 2010, ās 04.31.56, Eike Hein escreveu:
> Let me re-summarize the situation for clarity: Right
> now you have to be careful about what's inside the
> QString you pass to KNotification, because if it con-
> tains characters in a certain Unicode character range
> your application will crash as a result due to D-Bus
> closing the connection.

Let me resummarise:

What you said above, except the "pass to KNotification" part. It applies to any 
and every D-Bus call.

> This is problematic because there are many applica-
> tions (chat/messenger apps, some Plasmoids, maybe
> PIM) that pass network-originated data to KNotifi-
> cation without removing characters in that range
> first, since the use of D-Bus is an implementation
> detail irrelevant to the KNotification API, and
> since this D-Bus behavior is not widely known. In
> general, KNotification is among the most prevalent
> ways a KDE application will move its data through
> D-Bus.

Indeed, this may be proeminent with KNotification.

> The underlying problem is not specific to KNotifi-
> cation and should be addressed either in Qt or in
> D-Bus, since it's unrealistic to expect all use of
> D-Bus on the application code or even above-Qt lib-
> rary level to be augmented to screen for these
> characters.

Agreed.

> However, since KNotification is a known and broad
> attack vector, any such change will not make it into
> Qt 4.6.2 (according to Thiago) and the discussion on
> whether to change D-Bus has only just begun on the
> D-Bus mailing list, and we're about to release KDE
> 4.4.0, we have the opportunity to release it with a
> preemptive workaround that addresses the issue as it
> pertains to KNotification.

The protection has to happen somewhere. Technically, it's Konversation's fault 
for passing unfiltered network data into an API.

But it could also be a QString issue, for allowing those invalid UTF-8 strings 
to be converted to UTF-16 in the first place.

Note that changing the D-Bus behaviour may likely introduce bugs in Glib-based 
applications, where conversions from UTF-8 do implement this check. (Which, in 
my opinion, is incomplete)

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

["signature.asc" (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic