Some players on my server discovered a 7x7 zone approx 70 blocks from world spawn that they could destroy blocks in but not place blocks. After a lot of ruling things out (plugins first), it turned out to be caused by our ops.json file still containing an entry for a player with the 'Offline' UUID from before we switched to online mode. Deleting the file and letting Spigot create a new one (or manually changing the UUID to the correct 'online' one) fixed the problem.
In a curious twist, it turns out that the problematic zone's X and Z coordinates are the genuine spawn zone's X and Y coordinates. In other words, if I changed the world spawn Y coordinate, the problem zone's Z coordinate would reflect that, so I could move the problem zone around by changing the genuine spawn Y coordinate. Additionally, the problem zone was an exact size match for the genuine spawn zone (7x7) and covered the entire Y range from bedrock to upper build limit (0-256).