Modify

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#21756 closed defect (fixed)

Don't log oauth secrets

Reported by: Woazboat Owned by: team
Priority: normal Milestone: 22.03
Component: Core Version:
Keywords: oauth, token, secret, information disclosure Cc:

Description

Revision:18303
Is-Local-Build:false
Build-Date:1970-01-14 18:11:14
Debian-Release:0.0.svn18303+dfsg-2
Build-Name:Debian

Identification: JOSM/1.5 (18303 Debian en_GB) Linux Debian GNU/Linux bookworm/sid
Memory Usage: 407 MB / 3982 MB (212 MB allocated, but free)
Java version: 12.0.2+9-Debian-1, Debian, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920×1080 (scaling 1.00×1.00) :0.1 1920×1080 (scaling 1.00×1.00) :0.2 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_AT.UTF-8
System property file.encoding: ANSI_X3.4-1968
System property sun.jnu.encoding: ANSI_X3.4-1968
Locale info: en_GB
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: KDE
Java ATK Wrapper package: libatk-wrapper-java:all-0.38.0-5
libcommons-compress-java: libcommons-compress-java:all-1.21-1
libcommons-logging-java: libcommons-logging-java:all-1.2-2
fonts-noto: fonts-noto:all-20201225-1
liboauth-signpost-java: liboauth-signpost-java:all-1.2.1.2-3
VM arguments: [--module-path=/usr/share/openjfx/lib, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, -Djosm.restart=true, -Djava.net.useSystemProxies=true, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED]
Program arguments: [--debug]

When setting up oauth login, the token is logged as part of the query parameter:

2022-01-09 00:35:07.619 INFO: GET https://www.openstreetmap.org/oauth/request_token -> HTTP/1.1 200 (905 ms; 124 B)
2022-01-09 00:35:08.953 INFO: GET https://www.openstreetmap.org/login?cookie_test=true -> HTTP/1.1 200 (924 ms; 5.01 kB)
2022-01-09 00:35:08.965 INFO: POST https://www.openstreetmap.org/login (182 B) ...
2022-01-09 00:35:09.565 INFO: POST https://www.openstreetmap.org/login -> HTTP/1.1 302 (599 ms)
2022-01-09 00:35:09.877 INFO: GET https://www.openstreetmap.org/oauth/authorize?oauth_token=<removed> -> HTTP/1.1 200 (312 ms; 4.17 kB)
2022-01-09 00:35:09.923 INFO: POST https://www.openstreetmap.org/oauth/authorize (318 B) ...
2022-01-09 00:35:10.281 INFO: POST https://www.openstreetmap.org/oauth/authorize -> HTTP/1.1 200 (357 ms; 3.55 kB)
2022-01-09 00:35:11.204 INFO: GET https://www.openstreetmap.org/logout -> HTTP/1.1 200 (923 ms; 3.70 kB)
2022-01-09 00:35:12.124 INFO: GET https://www.openstreetmap.org/oauth/access_token -> HTTP/1.1 401 (918 ms)

With the --debug command line option, the token is also logged as part of the Authorization header:

2022-01-09 15:15:21.590 FINE: Reading user info ...
2022-01-09 15:15:21.591 FINE: Contacting Server...
2022-01-09 15:15:21.591 FINE: REQUEST HEADERS: {Accept=application/xml, */*;q=0.8, Accept-Encoding=gzip, deflate, Authorization=OAuth oauth_consumer_key="<removed>", oauth_nonce="<removed>", oauth_signature="<removed>", oauth_signature_method="HMAC-SHA1", oauth_timestamp="<removed>", oauth_token="<removed>", oauth_version="1.0"}
2022-01-09 15:15:21.595 INFO: Changeset updater active (checks every 60 minutes if open changesets have been closed)
2022-01-09 15:15:21.586 INFO: RemoteControl::Accepting remote connections on /0:0:0:0:0:0:0:1:8111
2022-01-09 15:15:21.769 INFO: GET https://api.openstreetmap.org/api/0.6/user/details (get number of unread messages) -> HTTP/1.1 200 (177 ms; 403 B)

Attachments (0)

Change History (4)

comment:1 by Woazboat, 3 years ago

Including secrets in log messages makes it easy for users to inadvertently disclose them when e.g. posting log output as part of bug reports.

(This report was triggered by someone doing just that because they were having trouble with the oauth login)

comment:2 by taylor.smock, 3 years ago

Note: We need to do the same thing when exporting preferences. We already do this with the password.

comment:3 by stoecker, 3 years ago

Resolution: fixed
Status: newclosed

In 18407/josm:

fix #21756 - strip typical privacy relevant parameters from URL output

comment:4 by stoecker, 3 years ago

Milestone: 22.03

Debug output is another topic. Whoever enables debug output should be aware that posting this is dangerous for privacy for multiple reasons. That's true for any software, so I don't see a need to provide a feeling for false security here.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.