[personal profile] mjg59
I had to rent a house for a couple of months recently, which is long enough in California that it pushes you into proper tenant protection law. As landlords tend to do, they failed to return my security deposit within the 21 days required by law, having already failed to provide the required notification that I was entitled to an inspection before moving out. Cue some tedious argumentation with the letting agency, and eventually me threatening to take them to small claims court.

This post is not about that.

Now, under Californian law, the onus is on the landlord to hold and return the security deposit - the agency has no role in this. The only reason I was talking to them is that my lease didn't mention the name or address of the landlord (another legal violation, but the outcome is just that you get to serve the landlord via the agency). So it was a bit surprising when I received an email from the owner of the agency informing me that they did not hold the deposit and so were not liable - I already knew this.

The odd bit about this, though, is that they sent me another copy of the contract, asserting that it made it clear that the landlord held the deposit. I read it, and instead found a clause reading SECURITY: The security deposit will secure the performance of Tenant’s obligations. IER may, but will not be obligated to, apply all portions of said deposit on account of Tenant’s obligations. Any balance remaining upon termination will be returned to Tenant. Tenant will not have the right to apply the security deposit in payment of the last month’s rent. Security deposit held at IER Trust Account., where IER is International Executive Rentals, the agency in question. Why send me a contract that says you hold the money while you're telling me you don't? And then I read further down and found this:
Text reading ENTIRE AGREEMENT: The foregoing constitutes the entire agreement between the parties and may bemodified only in writing signed by all parties. This agreement and any modifications, including anyphotocopy or facsimile, may be signed in one or more counterparts, each of which will be deemed anoriginal and all of which taken together will constitute one and the same instrument. The followingexhibits, if checked, have been made a part of this Agreement before the parties’ execution:۞Exhibit 1:Lead-Based Paint Disclosure (Required by Law for Rental Property Built Prior to 1978)۞Addendum 1 The security deposit will be held by (name removed) and applied, refunded, or forfeited in accordance with the terms of this lease agreement.
Ok, fair enough, there's an addendum that says the landlord has it (I've removed the landlord's name, it's present in the original).

Except. I had no recollection of that addendum. I went back to the copy of the contract I had and discovered:
The same text as the previous picture, but addendum 1 is empty
Huh! But obviously I could just have edited that to remove it (there's no obvious reason for me to, but whatever), and then it'd be my word against theirs. However, I'd been sent the document via RightSignature, an online document signing platform, and they'd added a certification page that looked like this:
A Signature Certificate, containing a bunch of data about the document including a checksum or the original
Interestingly, the certificate page was identical in both documents, including the checksums, despite the content being different. So, how do I show which one is legitimate? You'd think given this certificate page this would be trivial, but RightSignature provides no documented mechanism whatsoever for anyone to verify any of the fields in the certificate, which is annoying but let's see what we can do anyway.

First up, let's look at the PDF metadata. pdftk has a dump_data command that dumps the metadata in the document, including the creation date and the modification date. My file had both set to identical timestamps in June, both listed in UTC, corresponding to the time I'd signed the document. The file containing the addendum? The same creation time, but a modification time of this Monday, shortly before it was sent to me. This time, the modification timestamp was in Pacific Daylight Time, the timezone currently observed in California. In addition, the data included two ID fields, ID0 and ID1. In my document both were identical, in the one with the addendum ID0 matched mine but ID1 was different.

These ID tags are intended to be some form of representation (such as a hash) of the document. ID0 is set when the document is created and should not be modified afterwards - ID1 initially identical to ID0, but changes when the document is modified. This is intended to allow tooling to identify whether two documents are modified versions of the same document. The identical ID0 indicated that the document with the addendum was originally identical to mine, and the different ID1 that it had been modified.

Well, ok, that seems like a pretty strong demonstration. I had the "I have a very particular set of skills" conversation with the agency and pointed these facts out, that they were an extremely strong indication that my copy was authentic and their one wasn't, and they responded that the document was "re-sealed" every time it was downloaded from RightSignature and that would explain the modifications. This doesn't seem plausible, but it's an argument. Let's go further.

My next move was pdfalyzer, which allows you to pull a PDF apart into its component pieces. This revealed that the documents were identical, other than page 3, the one with the addendum. This page included tags entitled "touchUp_TextEdit", evidence that the page had been modified using Acrobat. But in itself, that doesn't prove anything - obviously it had been edited at some point to insert the landlord's name, it doesn't prove whether it happened before or after the signing.

But in the process of editing, Acrobat appeared to have renamed all the font references on that page into a different format. Every other page had a consistent naming scheme for the fonts, and they matched the scheme in the page 3 I had. Again, that doesn't tell us whether the renaming happened before or after the signing. Or does it?

You see, when I completed my signing, RightSignature inserted my name into the document, and did so using a font that wasn't otherwise present in the document (Courier, in this case). That font was named identically throughout the document, except on page 3, where it was named in the same manner as every other font that Acrobat had renamed. Given the font wasn't present in the document until after I'd signed it, this is proof that the page was edited after signing.

But eh this is all very convoluted. Surely there's an easier way? Thankfully yes, although I hate it. RightSignature had sent me a link to view my signed copy of the document. When I went there it presented it to me as the original PDF with my signature overlaid on top. Hitting F12 gave me the network tab, and I could see a reference to a base.pdf. Downloading that gave me the original PDF, pre-signature. Running sha256sum on it gave me an identical hash to the "Original checksum" field. Needless to say, it did not contain the addendum.

Why do this? The only explanation I can come up with (and I am obviously guessing here, I may be incorrect!) is that International Executive Rentals realised that they'd sent me a contract which could mean that they were liable for the return of my deposit, even though they'd already given it to my landlord, and after realising this added the addendum, sent it to me, and assumed that I just wouldn't notice (or that, if I did, I wouldn't be able to prove anything). In the process they went from an extremely unlikely possibility of having civil liability for a few thousand dollars (even if they were holding the deposit it's still the landlord's legal duty to return it, as far as I can tell) to doing something that looks extremely like forgery.

There's a hilarious followup. After this happened, the agency offered to do a screenshare with me showing them logging into RightSignature and showing the signed file with the addendum, and then proceeded to do so. One minor problem - the "Send for signature" button was still there, just below a field saying "Uploaded: 09/22/25". I asked them to search for my name, and it popped up two hits - one marked draft, one marked completed. The one marked completed? Didn't contain the addendum.

Date: 2025-09-24 11:22 pm (UTC)
infrogmation: (Default)
From: [personal profile] infrogmation
excellent. Thanks for your work.

Date: 2025-09-24 11:36 pm (UTC)
deborah: the Library of Congress cataloging numbers for children's literature, technology, and library science (Default)
From: [personal profile] deborah

I wouldn't have accepted the network tab discovery; I wonder why it downloaded the unedited PDF as well? But I really wonder why they tripled down when called out; surely by then they realized it made more sense to claim mistake and blame it on a non-existent intern?

Date: 2025-09-25 05:41 am (UTC)
From: (Anonymous)
My guess would be the agency person taking the call was (a) different from the agency person who did the deed and (b) had a firm (but incorrect) belief that nobody in their agency would ever do such a thing. The "resealing" argument was just a guess.

Date: 2025-09-25 03:25 am (UTC)
From: [identity profile] m50d.wordpress.com
So are you going to do anything that would cause actual consequences for them, or are you just amusing yourself here?

Date: 2025-09-26 01:02 am (UTC)
squirrelitude: (Default)
From: [personal profile] squirrelitude
I wonder if this is one of those things where you need to contact the AG and have them press charges.

Thank you

Date: 2025-10-01 12:53 pm (UTC)
From: (Anonymous)
I’m a California resident and I thank you for taking the time to report this fraud.

Date: 2025-09-26 05:27 am (UTC)
From: (Anonymous)
So are you going to spend the rest of your life as a troll?

I'm impressed...

Date: 2025-09-30 10:26 pm (UTC)
From: [personal profile] yohannon
...that you're so self aware for an anon-troll! :-*

Date: 2025-09-25 08:12 am (UTC)
From: [identity profile] spqrz.gitlab.io
Now you've looked at California tenancy law would you happen to have any comments on the film M3GAN 2.0 (https://en.wikipedia.org/wiki/M3GAN_2.0)? (The robot girl M3GAN runs Linux: an outdated version of groups.c is very briefly flashed on screen (https://www.reddit.com/r/M3GAN/comments/192vm76/m3gan_runs_linux/) in the first film scene when her codebase is being exfiltrated by Kurt.) In the second film Gemma has moved herself and Cady into an "insanely cheap" upmarket property in the San Francisco Mission District which, minor spoiler, turns out to have a secret elevator down to a M3GAN-designed underground lair. Gemma thought it was cheap because the unidentified landlord was using it for some kind of money laundering (which doesn't seem to bother her as a tenant, should it?), another character says the landlord probably likes her and it's basically implied that M3GAN set herself up as a fake landlord despite not having legal personhood. Presumably this would have been done via a (real or fake) agency and Megs was counting on Gemma not to realise she could write in to demand the name and address of the landlord (or, if she did, provide a fraudulent reply). Presumably as M3GAN has no legal personhood and was Gemma's creation anyway, there wouldn't be a case: you can't sue your own code for bugs (there might however be separate consequences to Gemma of whatever method M3GAN used to obtain the property in the first place: we could be charitable and assume she set herself up as a bunch of highly-paid remote workers or consultants to obtain funds rather than compromising bank computers or whatever; hopefully by the end of the film they'd let them off anyway by virtue of very publicly saving the world). But I say all that without having actually read Californian tenancy law as you have, so I wondered if you'd happen to have any extra insights for the M3GAN fans.
Edited (fix wrong markup) Date: 2025-09-25 08:18 am (UTC)

Date: 2025-09-25 08:50 am (UTC)
From: (Anonymous)
Might be worth dropping a polite email to RightSignature/ShareFile to say their platform is redisplaying the original certificate page on a new version of the document that has not yet been signed. That's bad user-interface design: they should make clear that you're now looking at a new version. (They probably didn't *intend* to aid fraud, just designed their system badly in a way that fraudsters can take advantage of)

Please find a real expert

Date: 2025-09-25 10:30 am (UTC)
From: (Anonymous)
Sorry to be blunt, but the court will not recognize your skills - this happened to me in the past. Find someone who is actually authorized to present such matters and can confirm your findings.

Re: Please find a real expert

Date: 2025-09-26 12:13 pm (UTC)
From: (Anonymous)
couldnt hurt to get a lawyer.... expensive tho

Re: Please find a real expert

Date: 2025-09-26 02:02 pm (UTC)
From: (Anonymous)
Legal Aid is free.

Date: 2025-09-26 04:24 am (UTC)
From: (Anonymous)
Landlords really are the scum of the earth

Date: 2025-09-26 11:55 am (UTC)
From: (Anonymous)
> something that looks extremely like forgery.

I can't see a single sentence where you contacted the police about this alleged forgery.

The conduct you walk past, is the conduct you accept.

Go tell the cops.

Date: 2025-09-26 02:02 pm (UTC)
From: (Anonymous)
And?

Date: 2025-09-27 02:07 am (UTC)
From: (Anonymous)
Thanks for the tips. I wonder how much of this could have been accomplished with Acrobat Pro using object inspector and PreFlight tools. I use it a lot professionally but not really in a forensics capacity. Though sometimes I also need to check such things. I'm definitely going to check out the PDF analyzer tool you mentioned, I'd type its name but I'm using voice to text and it did not understand my first attempt lol.

PDF graphical analyzer tool

Date: 2025-09-28 09:50 pm (UTC)
From: (Anonymous)
For me the best open source PDF graphical analyzer tool is RUPS, which uses iText internally, you can find it on flathub, https://flathub.org/es/apps/com.itextpdf.RUPS (https://flathub.org/es/apps/com.itextpdf.RUPS)

Cryptographic signature?

Date: 2025-10-01 09:50 am (UTC)
From: (Anonymous)
I am not familiar with RightSignature. Is the resulting PDF not cryptographically signed, such as with adbe.pkcs7.detached? Besides Acrobat, you can use Poppler's /usr/bin/pdfsig to check for that and validate the signature. KDE's Okular also verifies signatures.

Profile

Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at nvidia. Ex-biologist. Content here should not be interpreted as the opinion of my employer. Also on Mastodon and Bluesky.

Expand Cut Tags

No cut tags