<feed xmlns='http://www.w3.org/2005/Atom'>
<title>monzero-gui.git/src/libwalletqt/TransactionHistory.cpp, branch main</title>
<subtitle>Monzero desktop wallet graphical interface.
</subtitle>
<id>https://code.monzero.org/monzero-gui.git/atom?h=main</id>
<link rel='self' href='https://code.monzero.org/monzero-gui.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/'/>
<updated>2026-06-18T14:29:34Z</updated>
<entry>
<title>TransactionHistory: prevent CSV formula injection in writeCSV</title>
<updated>2026-06-18T14:29:34Z</updated>
<author>
<name>Thomas</name>
<email>thomas.giudici@proton.me</email>
</author>
<published>2026-06-18T10:17:18Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=0fbb1716fba3847a7d6f60287d20c1d9f03489cf'/>
<id>urn:sha1:0fbb1716fba3847a7d6f60287d20c1d9f03489cf</id>
<content type='text'>
writeCSV wrote the transaction note and subaddress label into the CSV
stripping only the quote character. A cell beginning with =, +, - or @
can be interpreted as a formula by spreadsheet software on open, which
CSV quoting does not prevent.

The transaction note can be attacker-controlled: a payment request's
tx_description is stored as the note when the payment is sent, so a
crafted note can run a spreadsheet formula when the user later exports
and opens their history, potentially enabling data exfiltration or
command execution.

Prefix affected fields with a single quote so they are treated as text;
fields beginning with whitespace or a control character are prefixed too.

Co-authored-by: selsta &lt;selsta@sent.at&gt;
</content>
</entry>
<entry>
<title>Update year in Cypyright</title>
<updated>2024-01-27T19:12:09Z</updated>
<author>
<name>inson1</name>
<email>75314629+inson1@users.noreply.github.com</email>
</author>
<published>2024-01-27T19:12:09Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=8851e71a8beafb5297be46dbb4d6884aa87bcdd5'/>
<id>urn:sha1:8851e71a8beafb5297be46dbb4d6884aa87bcdd5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #3572</title>
<updated>2021-09-05T16:58:39Z</updated>
<author>
<name>luigi1111</name>
<email>luigi1111w@gmail.com</email>
</author>
<published>2021-09-05T16:58:39Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=edb0358916de455a72aa30eff63eb49aba6ee392'/>
<id>urn:sha1:edb0358916de455a72aa30eff63eb49aba6ee392</id>
<content type='text'>
544cff7 TransactionHistory: add description to csv export (selsta)
57c2052 TransactionInfo: add isCoinbase and description (selsta)
</content>
</entry>
<entry>
<title>TransactionHistory: add description to csv export</title>
<updated>2021-08-31T03:50:54Z</updated>
<author>
<name>selsta</name>
<email>selsta@sent.at</email>
</author>
<published>2021-06-18T01:35:13Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=544cff7dc1150795231f1eb2c893457b594b1b14'/>
<id>urn:sha1:544cff7dc1150795231f1eb2c893457b594b1b14</id>
<content type='text'>
</content>
</entry>
<entry>
<title>TransactionHistory: use displayAmount for amount</title>
<updated>2021-06-18T00:08:37Z</updated>
<author>
<name>selsta</name>
<email>selsta@sent.at</email>
</author>
<published>2021-06-18T00:08:37Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=c15c5b522790a785addb67a6f791ef633d441c03'/>
<id>urn:sha1:c15c5b522790a785addb67a6f791ef633d441c03</id>
<content type='text'>
</content>
</entry>
<entry>
<title>src: fix qt 5.15 warnings</title>
<updated>2020-04-28T17:00:53Z</updated>
<author>
<name>selsta</name>
<email>selsta@sent.at</email>
</author>
<published>2020-04-23T01:13:13Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=02eec351b9a2f64de0dbb7088993f0a622c5561b'/>
<id>urn:sha1:02eec351b9a2f64de0dbb7088993f0a622c5561b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>TransactionHistory: fix use-after-free bugs</title>
<updated>2019-12-16T13:31:31Z</updated>
<author>
<name>xiphon</name>
<email>xiphon@protonmail.com</email>
</author>
<published>2019-12-16T07:50:01Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=4e1f7349c459c9e0b45bb7fa68d10ce05158e7fb'/>
<id>urn:sha1:4e1f7349c459c9e0b45bb7fa68d10ce05158e7fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>TransactionHistory: guard tx info list against concurrent access</title>
<updated>2019-12-04T10:33:54Z</updated>
<author>
<name>xiphon</name>
<email>xiphon@protonmail.com</email>
</author>
<published>2019-12-04T10:29:27Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=9d5eb002ae5a2308acc1f5a6f2c37bec12fce06f'/>
<id>urn:sha1:9d5eb002ae5a2308acc1f5a6f2c37bec12fce06f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add copyright headers</title>
<updated>2019-05-01T20:53:04Z</updated>
<author>
<name>mmbyday</name>
<email>mmbyday@protonmail.com</email>
</author>
<published>2019-05-01T20:53:04Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=c840549db5b5d715c444aa486d1435b5672464dd'/>
<id>urn:sha1:c840549db5b5d715c444aa486d1435b5672464dd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>CSV export functionality for transaction history</title>
<updated>2019-01-21T03:50:43Z</updated>
<author>
<name>dsc</name>
<email>xmrdsc@protonmail.com</email>
</author>
<published>2019-01-20T15:18:27Z</published>
<link rel='alternate' type='text/html' href='https://code.monzero.org/monzero-gui.git/commit/?id=fd3280c2547e7d54e6d28bd65342512eea51ee67'/>
<id>urn:sha1:fd3280c2547e7d54e6d28bd65342512eea51ee67</id>
<content type='text'>
</content>
</entry>
</feed>
